在某些线程库中,线程中通过fork创建的子进程无法通过wait或waitpid清理掉,原因是线程里面屏蔽的SIG_CHLD信号。

    可在线程主函数加入以下代码解决:

        signal(SIGCLD, SIG_IGN); /* don't need to wait child process */

    忽略这个信号后的作用是,告诉系统不关心子进程的执行返回值,系统可以自动回收所有结束的子进程。