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

java线程通讯

2012-11-10 
java线程通信题目:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环10

java线程通信

题目:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次。


public class TraditionalThreadCommunicationTest
{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{private boolean bShouldSub = true;public synchronized void sub(int i){while(!bShouldSub){try{this.wait();}catch (InterruptedException e){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){e.printStackTrace();}}for(int j=1; j<=100; j++)System.out.println("main thread sequence of " + j + ", loop of" + i);bShouldSub = true;this.notify();}}}
有关线程同步或通信问题:要用到共同数据(同步锁)或共同算法的若干个方法时,应该归结在同一个类上,
                                   在方法上做同步,这种设计体现了高类聚和程序的健壮性!
(来源于传智播客张孝祥老师多线程视频学习)

热点排行