信号/信号量 (linux)
信号是为了使进程获得某项重要的通知而发送给它的重要事件。这时进程必须立即停止当前的工作,转而处理该信号。每一个信号都用一个整数代表信号的类型。这些信号定义在 /usr/include/asm/signal.h中。我们在日常使用linux的过程中经常接触到信号操作,比如当某个进程正在运行时,按键control-c,或使用kill命令杀掉该进程,实际上都是使用了信号做进程间的通信。
......信号捕获(SIGKILL,TERM,ABRT) / 使用信号做定时器
信号量是一个含有整数的资源,它允许进程通过检测喝设置它的值来实现同步。即进程在检测喝设置它的值时,保证了其他进程在此期间不能做类似操作。
对信号量可以采取两种操作方式:等待和信号。设置的操作首先检测信号量的值是否是某一数值,如果相等,它把数值减少并且返回。如果不等,操作被阻塞直到有进程把它设置为需要的数值。信号操作则增加信号量的数值,它用于激活一个或多个等待信号量的进程。
信号量集是一个包含多个信号量的结构,它允许进程同时操作其中的一个或者多个信号。
......设置和获取信号量的值 / 使用信号量做排除式操作 / 使用信号量制作“生产-消费”操作
...
有时候想,中国程序员真TMD累,Windows/Unix/Linux/Mac... 学这个学那个还赶不上人家,不知道其他国家的程序员是不是也这样~?