fork并发进程处理
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 线程并发 处理僵尸线程 很多时候我们fork创建的子进程终止时,需要服务器进程进行清理,倘若未进行处理将会处理大量的僵尸线程,那么我们可以选择将进忽略,并交给init进程进行处理。 signal(SIGCHLD, SIG_IGN); //在fork创建的处理模块当中添加下列的代码,当子线程处理结束后将其退出,并由Init来释放资源。 exit(EXIT_SUCCESS); fork 创建进程 fork是创建一个当前运行进程的副本,只能通过 返回值 去区分当前是父线程还是子线程。fork是一次调用两次返回,通常返回下面两类. 当fork()返回的是>0的时候表示当前的是父进程 当fork()返回的为0表示当前是子进程. 返回<0表示当前创建的进程出现错误 ###示例一 #include <stdio.h> #include <string.h> #include <unistd.h> int main( void ) { int pid = fork(); if ( pid == 0 ) { printf( "当前处于子线程运行" ); } else { printf("当处于父进程运行,当前所创建的子线程的ID: %d\n",pid); } return 0; } 运行的结果 gcc ForkTest.c .