题目要求,主线程循环100次,子线程循环10次,再主线程循环100次,子线程循环10次,循环50次
开始的设计思想就是两边互相监听,由主线程开始进行100次,然后子线程监听到进行子线程的一个流程!虽然是个实例但是占用了相当大的系统资源,是一个不可取的思想。今天也感觉到自己距离还差好远呀继续努力。而且在写的时候也犯了很致命的错误,JAVA的基础功底需要加强了
public class ThreadTest {
//全局变量设计(为了实现功能的设计...影响效率的一方面)
static int i=0;
static int j=0;
static int k=0;
public static void main(String[] args) {
//线程方法
new Thread(new Runnable() {
public void run() {
//线程启动时,i=0,此时此方法启动,进行100次循环
while(i%10==0){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
j++;
System.out.println("子j"+j+"父i"+i);
}
}
}).start();
new Thread(new Runnable() {
public void run() {
while(true){
try {
Thread.sleep(40);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//j!=0时放在在初始时就被开启,当j到100时启动
while(j%100==0&&j!=0){
i++;
System.out.println("父i"+i+"子j"+j);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}).start();
}
}
但是这样运行并没有达到我的预想,因为会打出这样的情况父i1子j100当i=1的时候也进入了第一个线程,打出子j101父i1这样我就很不理解这到底发生了什么?求高手指点开来。