linux下多进程或者多线程编程的问题。新手,望指教!
c程序: 假如main函数一直执行,到中间,用fork创建多个进程,或者用其他方法创建多个线程,而线程是无线循环的,那么main函数还好在创建这些线程或者进程之后继续执行吗?还是停止在那个创建语句上?然后,main函数如果继续执行的话,那么他执行完毕,会退出整个程序,乃至所有由他产生的线程或者进程都关闭吗?? 请热心的朋友们详细点解答一下,谢谢大家!~
最满意答案
你好,多进程或多线程,都不会阻塞当前语句代码。为了您的理解,我就大胆举下面两个例子: 多进程:你可以看成是本来是一条路的,现在从中间拆成两条,然后每一条路都有属于自己这条路的代码在运行。 多线程:你可以看成是一条路,然后分出车道,比如左车道和右车道甚至是停车道,然后每条车道都单独通车,其他车道的不能对这条车道进行干扰。 所以,把一条路从中间拆成两条,成本是很高的。但是把一条路分车道,成本就不是很高了。 对于您提出的main函数的疑问,当main函数最后执行完毕,程序退出后,所有的进程包括线程,都会被关闭的,哪怕你的程序中没有关闭,操作系统也会帮你关闭的,现在的操作系统都非常的完善了。当然,也存在有线程或进程不被释放的特殊情况,最好在编程中要记得释放。更多推荐
发布评论