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

编程技术  /  houtizong 发布于 3年前   70
/** * 子线程循环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();    }    }

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客