首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

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

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

/** * 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 * @author lijinnan * @date:2013-11-5 下午3:07:10   */public class ThreadComunication {    private static final int ROUND_COUNT = 50;        public static void main(String[] args) {                //主线程和子线程“共享”一个Busines实例        final Business business = new Business();                /*        //主线程        for (int i = 0; i < ROUND_COUNT; i++) {            business.main(i);        }        */                //子线程-注意要先启动子线程,否则子线程不会启动,主线程在roundIndex=0执行完毕后就陷入无限等待        new Thread(new Runnable() {                        @Override            public void run() {                for (int i = 0; i < ROUND_COUNT; i++) {                    business.sub(i);                }            }                    }).start();                //主线程        for (int i = 0; i < ROUND_COUNT; i++) {            business.main(i);        }    }}class Business {        private static final int SUB_COUNT = 10;    private static final int MAIN_COUNT = 100;        private boolean doSub;        public synchronized void sub(int roundIndex) {        while (!doSub) {            try {                wait();            } catch (InterruptedException e) {                //ignore            }        }         for (int i = 0; i < SUB_COUNT; i++) {            System.out.println("sub " + i + " of " + roundIndex);        }        doSub = false;        notifyAll();    }        public synchronized void main(int roundIndex) {        while (doSub) {            try {                wait();            } catch (InterruptedException e) {                //ignore            }        }         for (int i = 0; i < MAIN_COUNT; i++) {            System.out.println("main " + i + " of " + roundIndex);        }        doSub = true;        notifyAll();    }    }

热点排行