分类: LINUX
2011-03-20 22:03:29
exec(2) 和 exit(2) 系统调用的工作方式与这些函数在单线程进程中的工作方式相同,但以下情况例外。在多线程应用程序中,这些函数将销毁地址空间中的所有线程。销毁所有执行资源和所有活动线程之前,这两个调用将阻塞。
exec() 重新生成进程时,exec() 将创建单个轻量进程 (lightweight process, LWP)。进程启动代码将生成初始线程。通常,如果初始线程返回,则该线程将调用 exit(),且进程将被销毁。
当进程中的所有线程都退出时,进程将退出。从包含多个线程的进程中调用任何 exec() 函数时将终止所有线程,并装入和执行新的可执行映像。但不会调用 destructor 函数。