黑马程序员技术交流社区
标题:
有个题,做完了,调试的时候却不对,求解答
[打印本页]
作者:
李鑫
时间:
2012-6-11 09:46
标题:
有个题,做完了,调试的时候却不对,求解答
题目是:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,我写的很多错,就不贴出来了,请高手写个正确的!最主要的是在主线程循环到子线程循环那备注一下啊
作者:
赵兵锋
时间:
2012-6-11 13:47
public class Main{
public static boolean flag;
public static void main(String[] args) {
T t = new T(true);
int counts=0;
flag = false;
t.start();
while(counts++<50){
while(!flag){};//flage为真时继续向下执行
System.out.println("主线程第"+counts+"次");
for(int i=1;i<=100;i++){
System.out.println("主线程:"+i);
}
t.set();//设置子线程的flag为真,让子线程继续向下执行
flag = false;//让主线程在
}
}
}
class T extends Thread{
Boolean flag = null;
int counts = 0;
T(boolean b){
flag = b;
}
public void set(){
flag = !flag;
}
@Override
public void run() {
while(counts++<50){
while(!flag){}//flag为真时继续向下执行,当主线程中改变此值时。
System.out.println("子线程第"+counts+"次");
for(int i=1;i<=10;i++){
System.out.println("子线程:"+i);
}
flag = false;//让子线程在下个while处反复执行
Main.flag = true;//让主线程继续向下执行
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2