Java 初学者-死锁机制
今天学习了java的死锁机制。

package DeadLock; public class DeadLosk { public static void main(String[]args) { Object o1=new Object(); Object o2=new Object(); Thread t1=new MyThread1(o1,o2); Thread t2=new MyThread2(o1,o2); t1.start(); t2.start(); } } class MyThread1 extends Thread{ Object o1; Object o2; public MyThread1(Object o1,Object o2){ this.o1=o1; this.o2=o2; } public void run() { synchronized (o1) { try { Thread.sleep(1000);//睡眠必定发生死锁 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } synchronized (o2) { System.out.println("t1"); } } } } class MyThread2 extends Thread{ Object o1; Object o2; public MyThread2(Object o1,Object o2){ this.o1=o1; this.o2=o2; } public void run() { synchronized (o2) { /* * try { // Thread.sleep(1000); } catch (InterruptedException e) { // TODO * Auto-generated catch block e.printStackTrace(); } */ synchronized (o1) { System.out.println("t2"); } } } }
我们需要避免这种情况的发生。
虽然线程并没有完全学完,但对于现在的我并不是特别需求,所以先学到这里。
明天计划吧多线程总结一下。