Multithreading 调用exec()时线程会发生什么情况?
我正在上操作系统课程,并试图围绕这个问题进行思考,如有任何帮助,我将不胜感激: 如果进程中的多个线程中的一个发出exec()调用,其他线程会发生什么情况?为什么? 我对exec()的理解是,它用一个新的进程替换当前进程,它与fork()的主要区别在于fork()创建了一个克隆,而最终得到的是重复的Multithreading 调用exec()时线程会发生什么情况?,multithreading,operating-system,exec,Multithreading,Operating System,Exec,我正在上操作系统课程,并试图围绕这个问题进行思考,如有任何帮助,我将不胜感激: 如果进程中的多个线程中的一个发出exec()调用,其他线程会发生什么情况?为什么? 我对exec()的理解是,它用一个新的进程替换当前进程,它与fork()的主要区别在于fork()创建了一个克隆,而最终得到的是重复的 因此,如果exec()替换当前进程,它会杀死旧进程的线程并用新进程替换它们吗?任何帮助都将不胜感激。在兼容POSIX的类Unix系统上: 从具有多个线程的进程调用任何exec函数都将导致终止所有线程,
因此,如果exec()替换当前进程,它会杀死旧进程的线程并用新进程替换它们吗?任何帮助都将不胜感激。在兼容POSIX的类Unix系统上: 从具有多个线程的进程调用任何exec函数都将导致终止所有线程,并加载和执行新的可执行映像。不得调用析构函数或清理处理程序
exec*
完成后,只有一个线程
(顺便说一句,我认为他们的意思是写“对任何exec函数的成功的调用…”,因为文本对于不成功的调用没有任何意义。)