问题描述
packagecom.TestThread;publicclassThreadTest{/***子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,*如此循环50次,请写出程序*@paramargs*/publicstaticvoidmain(String[]args){finalBussinessbussiness=newBussiness();//******问题就是出现在这里,欢迎详细解答,QQ294805691,随时恭候newThread(newRunnable(){@Overridepublicvoidrun(){for(inti=0;i<50;i++){bussiness.SubThread(i);}}}).start();for(inti=0;i<50;i++){bussiness.MainThread(i);}}classBussiness{privatebooleanflag=true;publicsynchronizedvoidMainThread(inti){while(flag)try{this.wait();}catch(InterruptedExceptione){e.printStackTrace();}for(intj=0;j<100;j++){System.out.println(Thread.currentThread().getName()+":i="+",j="+j);}flag=true;this.notify();}publicsynchronizedvoidSubThread(inti){while(!flag)try{this.wait();}catch(InterruptedExceptione){e.printStackTrace();}for(intj=0;j<10;j++){System.out.println(Thread.currentThread().getName()+":i="+",j="+j);}flag=false;this.notify();}}}
解决方案
本帖最后由 SUN11YAOYAO 于 2012-08-09 17:19:09 编辑
解决方案二:
把Bussiness类放到测试类的外面
解决方案三:
内部类不能直接实例化,先实例化ThreadTest类,再直接实例化内部类。代码如下:ThreadTesttt=newThreadTest();finalBussinessbussiness=tt.newBussiness();
解决方案四:
语法错误,编译时报的吧?
解决方案五:
你把Business写成ThreadTest的内容类了亲。。。
解决方案六:
各位亲。非常感谢,问题已经解决了!