这是概念上的区别,
比如说,信号,那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的线程,别的线程再进行某些动作。
互斥锁,这是多线程互斥用的,比如说,一个线程占用了某一个资源,那么别的线程就无法访问,知道这个线程离开,其他的线程才开始可以利用这个资源。
看你自己的用途,你说的这个,就用互斥锁就可以了,
互斥锁是为上锁而优化,条件变量是为等待而优化的,信号灯即可用于上锁,也可用于等待,因而可能导致更多的开销和更高的复杂性-----摘自《unix网络编程之进程间通讯》192页
这是概念上的区别,
比如说,信号,那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的线程,别的线程再进行某些动作。
互斥锁,这是多线程互斥用的,比如说,一个线程占用了某一个资源,那么别的线程就无法访问,知道这个线程离开,其他的线程才开始可以利用这个资源。
看你自己的用途,你说的这个,就用互斥锁就可以了,
互斥锁是为上锁而优化,条件变量是为等待而优化的,信号灯即可用于上锁,也可用于等待,因而可能导致更多的开销和更高的复杂性-----摘自《unix网络编程之进程间通讯》192页