首页 > 其他 > 详细

ThreadDeath 理解

时间:2015-11-22 17:16:33      阅读:436      评论:0      收藏:0      [点我收藏+]
 1 public class RunnableTest2 {
 2     public static Object obj1 = new Object();
 3     public static Object obj2 = new Object();
 4     private MyThread1 t1 = new MyThread1();
 5     private MyThread2 t2 = new MyThread2();
 6     public static void main(String[] args) {
 7         RunnableTest2 tr = new RunnableTest2();
 8         tr.t1.start();
 9         tr.t2.start();
10     }
11 }
12 
13 class MyThread1 extends Thread {
14     @Override
15     public void run() {
16         System.out.println(Thread.currentThread()+"锁定了obj1,过2秒锁定obj2去");
17         synchronized (RunnableTest2.obj1) {
18             try {
19                 Thread.sleep(2000);
20                 synchronized (RunnableTest2.obj2) {
21                     System.out.println("1");
22                 }
23             } catch (InterruptedException e) {
24                 e.printStackTrace();
25             }
26         }
27     }
28 }
29 
30 class MyThread2 extends Thread {
31     @Override
32     public void run() {
33             System.out.println(Thread.currentThread()+"锁定了obj2,过2秒锁定obj1去");
34             synchronized (RunnableTest2.obj2) {
35                 
36                 try {
37                     Thread.sleep(2000);
38                     synchronized (RunnableTest2.obj1) {
39                         System.out.println("2");
40                     }
41                 } catch (InterruptedException e) {
42                     // TODO Auto-generated catch block
43                     e.printStackTrace();
44                 }
45                 
46                 
47             }
48     }
49 }

打印结果:

Thread[Thread-0,5,main]锁定了obj1,过2秒锁定obj2去
Thread[Thread-1,5,main]锁定了obj2,过2秒锁定obj1去

 

ThreadDeath 理解

原文:http://www.cnblogs.com/freed0m/p/4986092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!