当前位置: 技术问答>linux和unix
信号量和互斥锁有什么区别??
来源: 互联网 发布时间:2015-10-08
本文导语: 我要锁住一个共享内存(shmctl) 用信号量(semctl)和互斥锁(pthread_mutex_lock)有什么区别呀? | 这是概念上的区别, 比如说,信号,那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的...
我要锁住一个共享内存(shmctl)
用信号量(semctl)和互斥锁(pthread_mutex_lock)有什么区别呀?
用信号量(semctl)和互斥锁(pthread_mutex_lock)有什么区别呀?
|
这是概念上的区别,
比如说,信号,那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的线程,别的线程再进行某些动作。
互斥锁,这是多线程互斥用的,比如说,一个线程占用了某一个资源,那么别的线程就无法访问,知道这个线程离开,其他的线程才开始可以利用这个资源。
看你自己的用途,你说的这个,就用互斥锁就可以了,
个人看法。
比如说,信号,那是多线程同步用的,一个线程完成了某一个动作就通过信号告诉别的线程,别的线程再进行某些动作。
互斥锁,这是多线程互斥用的,比如说,一个线程占用了某一个资源,那么别的线程就无法访问,知道这个线程离开,其他的线程才开始可以利用这个资源。
看你自己的用途,你说的这个,就用互斥锁就可以了,
个人看法。
|
互斥锁是为上锁而优化,条件变量是为等待而优化的,信号灯即可用于上锁,也可用于等待,因而可能导致更多的开销和更高的复杂性-----摘自《unix网络编程之进程间通讯》192页