semaphore信号量除了起到保护临界区的作用外,还用于锁同步的功能,即一个线程释放semaphore后,会保证正在等待该semaphore的线程优先执行,而不会马上在获取同一个semaphore。如果两个线程想通过一个锁达到输出1,2,1,2,1,2这样的序列,应使用semaphore,而使用mutex的结果可能为1,1,1,1,1,2,2,2,111.....。
计算机操作系统互斥信号量mutex怎么解释
mutex互斥体只用于保护临界区的代码(访问共享资源),而不用于锁之间的同步,即一个线程释放mutex锁后,马上又可能获取同一个锁,而不管其它正在等待该mutex锁的其它线程。semaphore信号量除了起到保护临界区的作用外,还用于锁同步的功能,即一个线程释放semaphore后,会保证正在等待该semaphore的线程优先执行,而不会马上在获取同一个semaphore。
如果两个线程想通过一个锁达到输出1,2,1,2,1,2这样的序列,应使用semaphore, 而使用mutex的结果可能为1,1,1,1,1,2,2,2,111.....。
linux mutex可以用在多进程中吗
pthread_mutex_t需要放在共享内存中, 并设置PTHREAD_PROCESS_SHARE。还不如用信号灯。