java同步机制解决了线程安全问题,但是也同时引发了死锁现象
1.存在两个或者两个以上的线程.
2.存在两个或者两个以上共享资源.
没有方案,只能尽量避免发生而已.
实例:
package jd1908_corejava.ch17; public class DeadLock { // 锁A public static Object A = new Object(); // 锁B public static Object B = new Object(); public static void main(String[] args) { T1 t1 = new T1(); T2 t2 = new T2(); t1.start(); t2.start(); } } class T1 extends Thread { @Override public void run() { synchronized (DeadLock.A) { System.out.println("A"); synchronized (DeadLock.B) { System.out.println("核心代码T1"); } } } } class T2 extends Thread { @Override public void run() { synchronized (DeadLock.B) { System.out.println("\tB"); synchronized (DeadLock.A) { System.out.println("核心代码T2"); } } } }
结果:
A
B
原文:https://www.cnblogs.com/fyscn/p/11361928.html