Gev*_*Dev 10 multithreading operating-system exec
我正在参加操作系统课程并试图解决这个问题,任何帮助将不胜感激:
如果进程中的多个线程之一进行 exec() 调用,其他线程会发生什么情况?为什么?
我对 exec() 的理解是用新进程替换当前进程,它与 fork() 的主要区别在于 fork() 创建一个克隆,最终得到重复。
那么如果 exec() 替换当前进程,它会杀死旧进程的线程并用新进程替换它们吗?任何帮助将不胜感激。
Nat*_*dge 11
在兼容 POSIX 的类 Unix 系统上:
从具有多个线程的进程调用任何 exec 函数将导致所有线程被终止,并加载和执行新的可执行映像。不应调用析构函数或清理处理程序。
后exec*完成,只有一个线程。
http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html
(顺便说一句,我认为他们的意思是写“对任何 exec 函数的成功调用...”,因为该文本对于不成功的调用没有意义。)
| 归档时间: |
|
| 查看次数: |
4744 次 |
| 最近记录: |