题22
题目
在使用互斥锁进行同步互斥时,下列( )情况会导致死锁。
A. 一个线程对同一个互斥锁连续加锁两次
B. 一个线程尝试对一个已加锁的互斥锁再次加锁
C. 两个线程分别对两个不同的互斥锁先后加锁, 但顺序相反
D. 一个线程对一个互斥锁加锁后忘记解锁
分析
死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
解
C
如果两个线程分别对两个不同的互斥锁先后加锁, 但顺序相反, 那么可能导致死锁, 这是典型的循环等待现象。
例如,线程 1 先对互斥锁 A 加锁,然后尝试对互斥锁 B 加锁;
同时,线程 2 先对