2 u012254284 u012254284 于 2014.10.10 18:08 提问

linux中主进程与主线程的关系

一直很困惑,linux环境下,程序启动时,会有主线程吗?如果有,这个主线程是在什么时候生成的,主进程又是什么时候生成的呢?
谢谢各位大大赐教!

4个回答

CodeHeng
CodeHeng   2014.11.17 09:49

主线程和主进程是相对而言的,主函数里面fork了子进程那么主函数就是主进程。类似的,pthread_create了子线程,主函数就是主线程。

oyljerry
oyljerry   Ds   Rxr 2014.12.04 14:48

进程启动的时候会有一个主线程,来执行Init初始化,调用_main() 函数等,这个线程就是主线程。
这个主进程概念是类似当它启动了子进程以后,那么父进程就是主进程

codehat
codehat   2014.12.04 18:13

我记得Linux实际上没有线程这个概念,每一个thread实际上就是一个进程。

Dongsheng_Yang
Dongsheng_Yang   2014.12.08 20:20

实际上所谓线程大体有两种实现方式:
1)kernel根本不知道thread的存在,thread之存在于进程中,可以看作一个process的cpu和stack的快照,thread之间的切换只需要在进程内在用户太完成。
2)kernel知道thread的存在,一个thread也是一个process。但是一组process共享进程空间,比如内存空间。这种实现下thread之间的切换需要又kernel完成。
linux事使用第二种实现方式实现的thread。也就是说,linux里面没有狭义中的thread概念。都是process,但是可以一组process共享资源。有一个leader,
这一组process的id号就是这个leader的id。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!