首页 新闻 会员 周边

以下java代码怎样产生的死锁?能不能描述一下。

0
悬赏园豆:15 [待解决问题]

public class A { synchronized void funA(B b) { String name=Thread.currentThread().getName(); System.out.println(name+"进入A.foo"); try { Thread.sleep(1000); } catch(Exception e) { System.out.println(e.getMessage()); } System.out.println(name+"调用B类中的last()方法"); b.last(); } synchronized void last() { System.out.println("A类中的last()方法"); } } public class B { synchronized void funB(A a) { String name=Thread.currentThread().getName(); System.out.println(name+"进入B类中"); try { Thread.sleep(1000); } catch(Exception e) { System.out.println(e.getMessage()); } System.out.println(name+"调用A类中的last()方法"); a.last(); } synchronized void last() { System.out.println("B类中的last()方法"); } } public class DeadLockDemo implements Runnable{ A a=new A(); B b=new B(); DeadLockDemo() { Thread.currentThread().setName("Main-->>Thread"); new Thread(this).start(); a.funA(b); System.out.println("main线程运行完毕"); } public void run() { Thread.currentThread().setName("Test-->>Thread"); b.funB(a); System.out.println("其他线程运行完毕"); } public static void main(String args[]) { new DeadLockDemo(); } }

琉璃*掉眼泪的主页 琉璃*掉眼泪 | 初学一级 | 园豆:185
提问于:2011-09-28 21:42
< >
分享
所有回答(1)
0

头疼啊

明明小k | 园豆:246 (菜鸟二级) | 2013-05-09 07:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册