首页 > 代码库 > 【java】多线程同步死锁
【java】多线程同步死锁
1 package 多线程; 2 class A{ 3 public synchronized void say(B b){ 4 System.out.println("A说:你把你的本给我,我把我的笔给你!"); 5 b.get(); 6 } 7 public synchronized void get(){ 8 System.out.println("A说:我得到了本,给你笔。"); 9 } 10 } 11 class B{ 12 public synchronized void say(A a){ 13 System.out.println("B说:你把你的笔给我,我把我的本给你!"); 14 a.get(); 15 } 16 public synchronized void get(){ 17 System.out.println("B说:我行到了笔,给你本。"); 18 } 19 }//以上任何一个synchronized去掉就可解除死锁 20 public class TestDeadLock implements Runnable{ 21 private static A a=new A(); 22 private static B b=new B(); 23 public static void main(String[] args) { 24 new TestDeadLock(); 25 } 26 public TestDeadLock(){ 27 new Thread(this).start(); 28 b.say(a); 29 } 30 @Override 31 public void run() { 32 a.say(b); 33 } 34 }
【java】多线程同步死锁
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。