摘要:
1.信号集 每个进程都有一个信号屏蔽字,它规定了当前要阻塞递送到该进程的信号集。对于每种可能的信号,该屏蔽字中都有一bit位与之对应。信号数可能会超过一个整型数所包含的二进制位数,因此POSIX.1定义了一个新数据类型sigset_t,它包括一个信号集 int sigempytset(sigset_ 阅读全文
posted @ 2018-04-24 23:51
edan
阅读(1199)
评论(0)
推荐(0)
摘要:
前言:上一篇的处理方法可以解决所有回收问题,但是如果我们不考虑子进程的返回状态,那么可以使内核来进行对子进程的回收 代码如下: //如果无需关心进程结束状态 可以设置子进程结束时不产生僵尸进程有内核值接回收#include <stdio.h>#include <stdlib.h>#include < 阅读全文
posted @ 2018-04-24 19:19
edan
阅读(141)
评论(0)
推荐(0)
摘要:
前言:回收子进程之前用了wait()和非阻塞模型,今天学了信号以后可以使回收机制更上一层楼,通过信号函数,父进程只需要做自己的事情,接收到信号后就触发信号函数。 信号处理函数可能会出现的bug: 1.受到停止信号也会触发SIGCHLD信号,使wait阻塞; 2.停止后继续也会触发信号,导致父进程阻塞 阅读全文
posted @ 2018-04-24 19:14
edan
阅读(384)
评论(0)
推荐(0)
摘要:
如果两个进程不仅需要同步,还要保证先后执行顺序,就要用两个信号量(互斥锁)来解决 //栅栏模型:实现以下框架中的四个子进程 所有进程做完任务后 在一起执行下一次 #include <stdio.h>#include <unistd.h>#include <sys/types.h>#include < 阅读全文
posted @ 2018-04-24 17:58
edan
阅读(1437)
评论(0)
推荐(0)