信号:(signal)是一种处理异步事件的方式
。
信号是比较复杂的通信方式,用于通知接受进程有某种事件发生
,除了用于进程外,还可以发送信号给进程本身
。是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。
信号量:(Semaphore)进程间通信处理同步互斥的机制
。是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源
。
信号量是一个特殊的变量
,它的本质是计数器
,信号量里面记录了临界资源的数目,有多少数目,信号量的值就为多少,进程对其访问都是原子操作(pv操作,p:占用资源,v:释放资源)。它的作用就是,调协进程对共享资源的访问
,让一个临界区同一时间只有一个进程在访问它。
总结
这样就可以看出信号和信号量的区别了:信号
是通知进程产生了某个事件
,信号量
是用来同步进程
的(用来调协进程对共享资源的访问的)