首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

子线程循环十次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序

2013-04-20 
子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请

子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。

public class ThreadTest {    /**     * 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。     */    public static void main(String[] args) {        // TODO Auto-generated method stub        new ThreadTest().init();    }    public void init()    {        final Business business = new Business();        new Thread(                new Runnable()                {                    public void run() {                        for(int i=0;i<50;i++)                        {                            business.SubThread(i);                        }                                           }                                   }               ).start();               for(int i=0;i<50;i++)        {            business.MainThread(i);        }           }       private class Business    {        boolean bShouldSub = true;//这里相当于定义了控制该谁执行的一个信号灯        public synchronized void MainThread(int i)        {            if(bShouldSub)                try {                    this.wait();                } catch (InterruptedException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                                  for(int j=0;j<100;j++)            {                System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j);            }            bShouldSub = true;            this.notify();               }                      public synchronized void SubThread(int i)        {            if(!bShouldSub)                try {                    this.wait();                } catch (InterruptedException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                              for(int j=0;j<10;j++)            {                System.out.println(Thread.currentThread().getName() + ":i=" + i +",j=" + j);            }            bShouldSub = false;                           this.notify();                   }    }}

?

热点排行