mutex是一个二进制标志,确保在代码关键区(critical section)互相排斥
semaphore的计数可以超过1,用于保护多重同类资源,N=1的semaphore称为Binary semaphore
一般情况下mutex和Binary semaphore是没有区别的,而在某些系统中会有差异,表现在:
mutex一定要由获得锁的进程来释放,而semaphore可以由其他进程来释放,故semaphore可以用于进程间同步
建议mutex用于保护critical section,semaphore用于保护变量或者实现同步