如果进程中有多个线程,则fork()的行为是不确定的.如何检查是否只有一个线程(主要在linux上,但也对Windows,darwin感兴趣)?
解决方法:
在Linux下,fork()的行为在多线程进程中并不是未定义的,但是它所做的事情通常不是很有帮助.
或者更确切地说,如果您使用fork()而不立即调用exec(),则可能会泄漏未指定的资源,其中可能包括可能导致死锁的锁.
当然可以(通过procfs)询问Linux当前线程组中有多少个线程.如果答案是“ 1”,则表示该进程是单线程的.