linux C语言中的线程间通信信号量机制
发布时间
阅读量:
阅读量
1. 线程间通信-互斥锁
互斥锁仅在共享资源数量为一的时候使用。它通过简单的加锁机制确保对共享资源的操作既具有完整的可见性又具备不可变性。
只有两种状态**: 上锁、解锁**
可把互斥锁看作某种意义上的全局变量
在同一时间单位内只有一个线程能够控制某个互斥锁;当一个线程处于上锁状态时它就可以对共享资源执行操作
当其他线程试图对一个已被本线程所锁定的互斥锁进行操作时,则该线程将被阻塞;这一阻塞状态将持续至被已锁定的线程释放其控制权并解除相关互斥 lock 机制为止。
互斥锁保证让每个线程对共享资源按顺序进行原子操作。
互斥锁基本函数:
互斥锁初始化:pthread_mutex_init()
互斥锁上锁:pthread_mutex_lock()
互斥锁判断上锁:pthread_mutex_trylock()
互斥锁解锁:pthread_mutex_unlock()
消除互斥锁:pthread_mutex_destroy()
2. 线程间通信-信号量
Semaphores offer a higher degree of concurrency compared to mutexes. If access to the buffer were protected by a QMutex, then neither threa
全部评论 (0)
还没有任何评论哟~
