互斥量和信号量的区别

互斥量和信号量的区别

1. 互斥量用于线程的互斥,信号量用于线程的同步。html

这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。多线程

互斥:是指某一资源同时只容许一个访问者对其进行访问,具备惟一性和排它性。但互斥没法限制访问者对资源的访问顺序,即访问是无序的。post

同步:是指在互斥的基础上(大多数状况),经过其它机制实现访问者对资源的有序访问。在大多数状况下,同步已经实现了互斥,特别是全部写入资源的状况一定是互斥的。少数状况是指能够容许多个访问者同时访问资源url

以上区别是主要想记住的。spa

note:信号量能够用来实现互斥量的功能
线程

2. 互斥量值只能为0/1,信号量值能够为非负整数。htm

也就是说,一个互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量能够实现多个同类资源的多线程互斥和同步。当信号量为单值信号量是,也能够完成一个资源的互斥访问。blog

3. 互斥量的加锁和解锁必须由同一线程分别对应使用,信号量能够由一个线程释放,另外一个线程获得。资源

 

copy from:get

http://www.cnblogs.com/lbsx/archive/2009/08/03/1537698.html

相关文章
相关标签/搜索