为啥在互斥信号量之前需要进行 P 操作,否则会死锁

@采花小狐狸回答的很生动,这里就稍微补充一下。正常顺序不说了,不先进行 P 操作的情况:生产者进车间,啪,把门锁了(mutex);瞅了一眼,卧槽都满了还产个屁,我要等消费者了,先睡一觉(空条件的 P 原语)... (上帝视角内心 OS:你丫倒是出来啊……)消费者来到车间,看了一眼,诶锁门了,生产者一定在里面生产呢,我在门外等着吧(mutex 阻塞)...等啊等,等啊等...................
■网友
对于 mutex 而言,一个 p 要等待一个 v 才能继续,顺便一个锁是没有所谓死锁的,只有两个以上的锁才会由于锁定顺序不同而导致死锁t1: p(1), p(2), v(2), v(1)t2: p(2), p(1), v(1), v(2)如果两个线程都完成了第一步,就会造成死锁。
■网友
各位亲能否回答详细些呢?


    推荐阅读