一.信号量
 
进化版的互斥锁(1---->N)
 
由于互斥锁的粒度比较大,如果我们希望多个线程间对某个对象的部分数据进行共享【类似于行锁,拥有部分是不一样的】,使用互斥锁是没有办法实现的,只能讲整个对象锁住,这样虽然保证了多个线程操作同一个共享资源数据的正确性,但同时也降低了 线程的并发程度。线程从并行执行变为串行执行,与直接用单进程操作该数据速度还要慢些,为什么呢? 因为锁 也是一种资源,上锁和 解锁 也是有开销的。
 
信号量是一种相对折中的方式,即能保证同步,数据不紊乱,也能保证线程/进程的并发性
 
 
 
二.信号量的主要应用函数
 
 sem _init,函数
 sem_destroy函数
 sem_wait函数