产生死锁的条件和解决方法

产生死锁的4个必要条件:

   1.一个进程获得了锁,那么他所占有的资源是其他进程不能获取的。

   2.一个进程获取了资源,只能主动释放,不能被其他进程抢占。

    3.一个进程已经有资源了,仍然去请求其他资源,导致阻塞。

    4.造成等待循环队列,一个线程的资源被后一个线程请求。

解决方案:

    1.控制加锁和释放锁的顺序。

    2.控制请求时间,当请求时间过长时,回退,再次请求。

    3.设置锁的优先级,在回退时,一个线程回退,另外的不回退。在死锁发生时,随机设置优先级。

猜你喜欢

转载自blog.csdn.net/qq_38256015/article/details/82686635
今日推荐