本文共 1603 字,大约阅读时间需要 5 分钟。
直接看例子:
public class DealThread implements Runnable{ public String username; public Object lock1=new Object(); public Object lock2=new Object(); public void setFlag(String username){ this.username=username; } @Override public void run() { if(username.equals("a")){ synchronized (lock1){ try { System.out.println("username = "+username); Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (lock2){ System.out.println("按lock1->lock2代码顺序执行了"); } } } if(username.equals("b")){ synchronized (lock2){ try { System.out.println("username = "+username); Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (lock1){ System.out.println("按 lock2->lock1代码顺序执行了"); } } } }}
public class Run { public static void main(String[] args){ try { DealThread t1=new DealThread(); t1.setFlag("a"); Thread thread1=new Thread(t1); thread1.start(); Thread.sleep(100); t1.setFlag("b"); Thread thread2=new Thread(t1); thread2.start(); } catch (InterruptedException e) { e.printStackTrace(); } }}你在的等我,我在等你,就永远等了= =(要行动起来啊)
转载地址:http://hljqi.baihongyu.com/