多线程编程——互斥锁死锁案例

前言
线程同步是多线程编程必须考虑的一个机制,线程同步的机制有:
1.POSIX信号量
2.互斥量(互斥锁)
3.条件变量
接下来将讨论互斥锁
什么是互斥锁呢?
互斥锁(也称互斥量)可以用来保护临界区代码段,确保其独占式的访问。
什么是死锁
使用互斥锁的一个可能带来的问题就是死锁。死锁使得一个或者多个线程被挂起而无法继续执行,而且这种情况还不容易被发现。比如:①在一个线程中堆一个已经加锁的普通锁再次加锁,将导致死锁。②两个线程按照不同的顺序来申请两个互斥锁,也容易产生死锁。
对于第二种情况,给出以下详细案例。
多线程编程——互斥锁死锁案例_第1张图片
以上代码的运行将造成死锁,两个线程互相等待阻塞。因为也可以知道一个避免死锁的办法:资源的有序分配。

你可能感兴趣的:(Linunx服务器编程,linux,c++,多线程)