java多线程之线程间同步通信

来源:互联网 发布:办公软件使用心得体会 编辑:程序博客网 时间:2024/05/18 03:08
public class ConditionCommunication {/** * @param args */public static void main(String[] args) {final Business business = new Business();new Thread(new Runnable() {@Overridepublic void run() {for(int i=1;i<=50;i++){business.sub(i);}}}).start();for(int i=1;i<=50;i++){business.main(i);}}static class Business {Lock lock = new ReentrantLock();Condition condition = lock.newCondition();  private boolean bShouldSub = true;  public  void sub(int i){  lock.lock();  try{  while(!bShouldSub){  try {condition.await();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}  }for(int j=1;j<=5;j++){System.out.println("sub thread sequence of " + j + ",loop of " + i);}  bShouldSub = false;  condition.signal();  }finally{  lock.unlock();  }  }    public  void main(int i){  lock.lock();  try{ while(bShouldSub){  try {condition.await();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}  }for(int j=1;j<=10;j++){System.out.println("main thread sequence of " + j + ",loop of " + i);}bShouldSub = true;condition.signal();  }finally{  lock.unlock();  }  }}}


摘自教程

0 0
原创粉丝点击