主线程先循环20次,接着子线程循环10次,如此周而复始50次
2013-11-26 10:29
330 查看
/**
* 题:主线程先循环20次,接着子线程循环10次,如此周而复始50次
* 线程wait,notify应用
*/
public class ZL {
public static int total_loop_count = 50;//欲循环的总次数
public static int curr_loop_count = 1;//当前已循环次数
public static void main(String[] args) {
Thread c = new CThread();
c.setName("子子子子子线程");
c.start();
}
}
class PThread extends Thread {
/*
* 主线程循环20次
*/
public void run() {
synchronized (String.class) {
for (int i = 1; i <= 20; i++) {
System.out.println("第" + ZL.curr_loop_count + "轮," + Thread.currentThread().getName() + ":" + i);
if (i == 20) {
String.class.notifyAll();
}
}
}
}
}
class CThread extends Thread {
/*
* 子线程循环10次
*/
public void run() {
synchronized (String.class) {
Thread p = new PThread();
p.setName("主线程");
p.start();
try {
String.class.wait();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (int i = 1; i <= 10; i++) {
System.out.println("第" + ZL.curr_loop_count + "轮," + Thread.currentThread().getName() + ":" + i);
if(i==10){
ZL.curr_loop_count ++;
if(ZL.curr_loop_count > ZL.total_loop_count){
break;
}
Thread c = new CThread();
c.setName("子子子子子线程");
c.start();
}
}
}
}
}
* 题:主线程先循环20次,接着子线程循环10次,如此周而复始50次
* 线程wait,notify应用
*/
public class ZL {
public static int total_loop_count = 50;//欲循环的总次数
public static int curr_loop_count = 1;//当前已循环次数
public static void main(String[] args) {
Thread c = new CThread();
c.setName("子子子子子线程");
c.start();
}
}
class PThread extends Thread {
/*
* 主线程循环20次
*/
public void run() {
synchronized (String.class) {
for (int i = 1; i <= 20; i++) {
System.out.println("第" + ZL.curr_loop_count + "轮," + Thread.currentThread().getName() + ":" + i);
if (i == 20) {
String.class.notifyAll();
}
}
}
}
}
class CThread extends Thread {
/*
* 子线程循环10次
*/
public void run() {
synchronized (String.class) {
Thread p = new PThread();
p.setName("主线程");
p.start();
try {
String.class.wait();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (int i = 1; i <= 10; i++) {
System.out.println("第" + ZL.curr_loop_count + "轮," + Thread.currentThread().getName() + ":" + i);
if(i==10){
ZL.curr_loop_count ++;
if(ZL.curr_loop_count > ZL.total_loop_count){
break;
}
Thread c = new CThread();
c.setName("子子子子子线程");
c.start();
}
}
}
}
}
相关文章推荐
- 面试题:子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次,请写出程序
- java一道多线程题,子线程循环10次,主线程接着循环100次,如此循环50次的问题
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次.
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序
- java多线程笔试题:子线程循环10次;接着主线程循环20次,接着又子线程循环10次,接着再回到主线程又循环20次,如此循环50次,请写出程序。
- 多线程学习--案例-子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- (13)多线程与并发库之java5阻塞队列(BlockingQueue)的应用----子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程循环100次,如此循环50次
- 【Java面试题】30 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
- 子线程循环10次,接着主线程循环5次,接着又回到子线程循环10次,接着再回到主线程又循环5次,如此循环50次,请写出程序。
- Java多线程面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次, 接着再回到主线程又循环100,如此循环50次
- 面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次.....如此循环50次
- 多线程面试题:子线程循环10次,接着主线程循环100次;接着回到子线程循环10次,然后再回到主线程循环100次,如此交替50次。
- 子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程100次,如此循环50次
- 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次
- 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- (某培训机构的练习题)子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。
- 子线程循环3次,接着主线程循环6,接着又回到子线程循环3次,接着再回到主线程又循环6,如此循环10次.
- 机试题-〉子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序