Java-死锁

多线程通信的时候很容易造成死锁,死锁无法解决,只能避免:

当A线程等待由B线程持有的锁,而B线程正在等待A线程持有的锁时,发生死锁现象,JVM不检测也不试图避免这种情况,所以程序员必须保证不导致死锁.

避免死锁法则: 当多个线程都要访问共享的资源A,B,C时,保证每一个线程都按照相同的顺序去访问他们,比如都先访问A,接着B,最后C.

--------------------

哲学家吃面条的故事

--------------------

Thread类中过时的方法:

suspend():使正在运行的线程放弃CPU,暂停运行.

resume():是暂停的线程恢复运行.

--------------------

注意:因为容易导致死锁,所以已经被废弃了.

死锁情况:

A线程获得对象锁,正在执行一个同步方法,如果B线程调用A线程的suspend方法,此时A线程暂停运行,此时A线程放弃CPU,但是不会放弃占用的锁.

版权声明:
作者:yfeer
链接:https://www.yfeer.com/728.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>