一、什么是死锁。
二、产生死锁的原因。
三、产生死锁的四个必要条件。
四、解决死锁的方法。
什么是死锁
所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
因此我们举个例子来描述,线程A持有锁a,线程B持有锁b;而A又等待获取锁b,B又等待获取a,而此时的锁a锁b被A,B占据。如下图:
产生死锁的原因
可分为如下两点:
竞争资源
系统中的资源可以分为两类:
1、可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源;
2、另一类资源是不可剥夺资源,当系统把这类资源分配给某进程后,再不能强行收回,只能在进程用完后自行释放,如磁带机、打印机等。
产生死锁中的竞争资源之一指的是竞争不可剥夺资源(例如