Multithreading 调用exec()时线程会发生什么情况?

Multithreading 调用exec()时线程会发生什么情况?,multithreading,operating-system,exec,Multithreading,Operating System,Exec,我正在上操作系统课程,并试图围绕这个问题进行思考,如有任何帮助,我将不胜感激: 如果进程中的多个线程中的一个发出exec()调用,其他线程会发生什么情况?为什么? 我对exec()的理解是,它用一个新的进程替换当前进程,它与fork()的主要区别在于fork()创建了一个克隆,而最终得到的是重复的 因此,如果exec()替换当前进程,它会杀死旧进程的线程并用新进程替换它们吗?任何帮助都将不胜感激。在兼容POSIX的类Unix系统上: 从具有多个线程的进程调用任何exec函数都将导致终止所有线程,

我正在上操作系统课程,并试图围绕这个问题进行思考,如有任何帮助,我将不胜感激:

如果进程中的多个线程中的一个发出exec()调用,其他线程会发生什么情况?为什么?

我对exec()的理解是,它用一个新的进程替换当前进程,它与fork()的主要区别在于fork()创建了一个克隆,而最终得到的是重复的


因此,如果exec()替换当前进程,它会杀死旧进程的线程并用新进程替换它们吗?任何帮助都将不胜感激。

在兼容POSIX的类Unix系统上:

从具有多个线程的进程调用任何exec函数都将导致终止所有线程,并加载和执行新的可执行映像。不得调用析构函数或清理处理程序

exec*
完成后,只有一个线程

(顺便说一句,我认为他们的意思是写“对任何exec函数的成功的调用…”,因为文本对于不成功的调用没有任何意义。)