5,消除死锁的必要条件

  ①:消除资源独占条件

  是将有限资源增大到无限和共享资源。

  将有限资源增大到无限,这个并不实际,也不需要。线程总是有限,所以对请求的资源也可限。

  共享资源是可以实现的,比如共享的打印机。

  ②:消除保持和请求条件

  是一个进程一次性请求完所有的资源,不再请求一点资源后,再去执行一些任务。

  这样做的缺点是资源太过浪费,有些进程只有在后的时候才请求所需的资源,如果一开始占用,非常影响效率。

  ③:消除非抢占条件

  是运行进程对别的进程资源的抢占。这也是cpu和内存调度的一个关键。

  缺点是,如果在抢占资源时,将一个死锁资源抢占过来,则后果很严重。

  ④:消除循环等待时间

  是我们设定请求资源的顺序,不再让进程随机无序的请求资源。