当前位置:编程学习 > JAVA >>

这道多线程的题目我搞不懂。。。求助

周末去考OCJP,看到这道题目,不能不骂BT,但我确实没搞懂。。。请高手帮忙分析一下,先谢过!

我有两个疑问:
1) Thread.currentThread.join()跟t.join()不是一回事么?为什么前者根本就运行不完,后都可以。
2) i=6时,怎么运行?难道t.join()还支持嵌套?


package com.ocjp.testThread;

public class NestedThread extends Thread {
 static int count = 0;
 public void run() {
 for(int i = 0; i < 100; i++) {
 if(i == 5 && count < 3) {
 Thread t = new NestedThread(names[count++]);
//  run()方法里启线程,这世界太疯狂!
 t.start();
//  t调用join()阻塞了其它线程,自己先运行结束; i=6时怎么运行?
 try { t.join(); } catch(Exception e) { }
//  下面的写法,将进入infinite loop....还没搞懂。。。下面的写法跟t.join()不一样么?
//  try { Thread.currentThread().join(); } catch(Exception e) { }
 }
 System.out.println(Thread.currentThread().getName() + " ");
 }
 }
 public static void main(String[] args) {
 new NestedThread("t0").start();
 }

 NestedThread(String s) { super(s); }
 String[] names = {"t1", "t2", "t3"};
}
多线程 ocjp --------------------编程问答-------------------- Thread.currentThread().join()。。是绝对不可以的。。。这永远是自己合并自己。。。,我水平太差,对此不敏感 --------------------编程问答-------------------- 发现LZ的几个问题都挺有意思的,学习学习啦~
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,