死锁的四个必要条件:互斥条件、循环等待条件、占用且申请条件、不可抢占条件。
比如一个进程 fork 成两个进程 A 、B,共享内存中一个变量 X 的值为 0 。
A 进程阻塞了,必须等待 B 进程结束后 A 进程才继续运行,而 B 进程必须等待 A 进程把共享内存中变量 X 置 1 才继续运行。
这个例子中,我只看到了循环等待条件,请问互斥条件是什么?占用且申请条件是什么?不可抢占条件是什么?
比如一个进程 fork 成两个进程 A 、B,共享内存中一个变量 X 的值为 0 。
A 进程阻塞了,必须等待 B 进程结束后 A 进程才继续运行,而 B 进程必须等待 A 进程把共享内存中变量 X 置 1 才继续运行。
这个例子中,我只看到了循环等待条件,请问互斥条件是什么?占用且申请条件是什么?不可抢占条件是什么?