package test1;public class JoinThread { /**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根 ThreadTest2 t=new ThreadTest2();
Thread pp=new Thread(t);
pp.start();
int i=0;
while(true){
if(i==100){
try{
pp.join();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
System.out.println("main Thread "+i++);
}
}}class ThreadTest2 implements Runnable{
public void run(){
// String str=new String();
int j=0;
while(true)
System.out.println(Thread.currentThread().getName()+" "+j++);
}
}
但是运行结果就是不对如下
Thread-0 78084
Thread-0 78085
Thread-0 78086
Thread-0 78087
Thread-0 78088
Thread-0 78089
Thread-0 78090
Thread-0 78091
Thread-0 78092
Thread-0 78093
Thread-0 78094
Thread-0 78095
Thread-0 78096
Thread-0 78097
Thread-0 78098
Thread-0 78099
Thread-0 78100
Thread-0 78101
Thread-0 78102
Thread-0 78103
Thread-0 78104
Thread-0 78105
Thread-0 78106
Thread-0 78107
Thread-0 78108
Thread-0 78109
Thread-0 78110
Thread-0 78111
Thread-0 78112
Thread-0 78113
Thread-0 78114
Thread-0 78115
Thread-0 78116
.......
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根 ThreadTest2 t=new ThreadTest2();
Thread pp=new Thread(t);
pp.start();
int i=0;
while(true){
if(i==100){
try{
pp.join();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
System.out.println("main Thread "+i++);
}
}}class ThreadTest2 implements Runnable{
public void run(){
// String str=new String();
int j=0;
while(true)
System.out.println(Thread.currentThread().getName()+" "+j++);
}
}
但是运行结果就是不对如下
Thread-0 78084
Thread-0 78085
Thread-0 78086
Thread-0 78087
Thread-0 78088
Thread-0 78089
Thread-0 78090
Thread-0 78091
Thread-0 78092
Thread-0 78093
Thread-0 78094
Thread-0 78095
Thread-0 78096
Thread-0 78097
Thread-0 78098
Thread-0 78099
Thread-0 78100
Thread-0 78101
Thread-0 78102
Thread-0 78103
Thread-0 78104
Thread-0 78105
Thread-0 78106
Thread-0 78107
Thread-0 78108
Thread-0 78109
Thread-0 78110
Thread-0 78111
Thread-0 78112
Thread-0 78113
Thread-0 78114
Thread-0 78115
Thread-0 78116
.......
解决方案 »
- 一道面试题,欢迎进来讨论
- 请问如何用swing实现如下描述的效果
- 询问一下 用JAVA实现抓包的思路
- java初学者的一个问题
- 这个能用算法实现吗?
- 急:是jdk1.5的问题,还是我的问题
- JTable中某个Cell的值发生改变时,从什么事件可以监视到?
- 我想找个 java 工作 希望各位给我处处问题 看我能不能胜任 任何问题均可 最好代表可以工作的水平
- 一个JDBC的问题?
- 卖到英文版thinking in java (2),共同学习,留下qq
- Vector的removeAllElements() 的工作原理,求高手解答
- 请问Java中线程的yield()方法,sleep()方法,wait()方法,start()方法的作用和区别
while(true){
if(i==100){
try{
pp.join();
} 请问,啥时候i会等于100呢?从来不会吧,他永远等于0你是不是少写了i++了!
还有他怎么会出现78084等这么大的数呢
join() 方法 阻塞当前线程(你的例子当前线程是main线程),直到另一线程(你的例子中指的是pp)终止时再执行。你的PP线程一直在跑··的