您的位置:首页 > 大数据 > 人工智能

一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)

2017-02-10 17:46 225 查看
/** 

 * sub运行10次,然后main运行100次,这样交替循环50次 

 * @author Administrator 

 * 

 */  

public class TraditionalThreadCommunication {  

  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

          

        final Business business = new Business();  

        new Thread(  

                new Runnable() {              

                    @Override  

                    public void run() {  

                        for(int i=1;i<=50;i++){  

                            business.sub(i);  

                        }     

                    }  

                }  

        ).start();  

          

          

        new Thread(new Runnable() {  

              

            @Override  

            public void run() {  

                for(int i=1;i<=50;i++){  

                    business.main(i);  

                }     

            }  

        }).start();  

          

    }  

  

}  

  class Business {  

      private boolean bShouldSub = true;  

      public synchronized void sub(int i){  

          while(!bShouldSub){  

              try {  

                this.wait();  

            } catch (InterruptedException e) {  

                // TODO Auto-generated catch block  

                e.printStackTrace();  

            }  

          }  

            for(int j=1;j<=10;j++){  

                System.out.println("sub thread sequence of " + j + ",loop of " + i);  

            }  

          bShouldSub = false;  

          this.notify();  

      }  

        

      public synchronized void main(int i){  

            while(bShouldSub){  

                try {  

                    this.wait();  

                } catch (InterruptedException e) {  

                    // TODO Auto-generated catch block  

                    e.printStackTrace();  

                }  

            }  

            for(int j=1;j<=100;j++){  

                System.out.println("main thread sequence of " + j + ",loop of " + i);  

            }  

            bShouldSub = true;  

            this.notify();  

      }  

  }  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐