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