死锁现象
Posted iFat的笔记本
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了死锁现象相关的知识,希望对你有一定的参考价值。
/* java中同步机制解决了线程安全问题,但是也同时引发死锁现象。 死锁现象: 死锁现象出现 的根本原因: 1. 存在两个或者两个以上的线程。 2. 存在两个或者两个以上的共享资源。 死锁现象的解决方案: 没有方案。只能尽量避免发生而已。 */ class DeadLock extends Thread{ public DeadLock(String name){ super(name); } public void run() { if("张三".equals(Thread.currentThread().getName())){ synchronized ("遥控器") { System.out.println("张三拿到了遥控器,准备 去拿电池!!"); synchronized ("电池") { System.out.println("张三拿到了遥控器与电池了,开着空调爽歪歪的吹着..."); } } }else if("狗娃".equals(Thread.currentThread().getName())){ synchronized ("电池") { System.out.println("狗娃拿到了电池,准备去拿遥控器!!"); synchronized ("遥控器") { System.out.println("狗娃拿到了遥控器与电池了,开着空调爽歪歪的吹着..."); } } } } } public class Demo2 { public static void main(String[] args) { DeadLock thread1 = new DeadLock("张三"); DeadLock thread2 = new DeadLock("狗娃"); //开启线程 thread1.start(); thread2.start(); } }
以上是关于死锁现象的主要内容,如果未能解决你的问题,请参考以下文章
网络编程基础--多线程---concurrent.futures 模块---事件Event---信号量Semaphore---定时器Timer---死锁现象 递归锁----线程队列queue(示例代码