java多线程问题:下面代码我运行的结果和书上给的不一样

classThreadTestimplementsRunnable{publicvoidrun(){//Stringstr=newString();inti=0;for(... class ThreadTest implements Runnable
{
public void run()
{
//String str = new String();
int i = 0;
for(int x =0;x < 10;x++)
{
System.out.println(Thread.currentThread().getName()+"--->>"+ i++);
}
}
}
public class ThreadJoin extends Thread
{

public static void main(String[] args) {
// TODO Auto-generated method stub
ThreadTest t = new ThreadTest();
Thread pp = new Thread(t);
pp.start();
int i = 0;
for(int x = 0;x < 10;x++)
{

if(i == 5)
{
try
{

pp.join();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
System.out.println("main Thread"+i);
i++;
}
}

}

我运行结果顺序:
main Thread0
Thread-0--->>0
main Thread1
Thread-0--->>1
main Thread2
Thread-0--->>2
main Thread3
Thread-0--->>3
main Thread4
Thread-0--->>4
Thread-0--->>5
Thread-0--->>6
Thread-0--->>7
Thread-0--->>8
Thread-0--->>9
main Thread5
main Thread6
main Thread7
main Thread8
main Thread9
书上顺序:
main Thread0
main Thread1
main Thread2
main Thread3
main Thread4
Thread-0--->>0
Thread-0--->>1
Thread-0--->>2
Thread-0--->>3
Thread-0--->>4
Thread-0--->>5
Thread-0--->>6
Thread-0--->>7
Thread-0--->>8
Thread-0--->>9
main Thread5
main Thread6
main Thread7
main Thread8
main Thread9
展开
 我来答
peige652
2014-03-01
知道答主
回答量:26
采纳率:0%
帮助的人:15.3万
展开全部
哈哈,多线程执行的本来就是无序的,两个线程互不干扰,相互都在运行;
你第二次运行看看,是不是跟你上一次运行的结果也不一样;
九月不远
2014-03-01
知道答主
回答量:48
采纳率:0%
帮助的人:29.2万
展开全部
输出结果是无序的,这是多线程的并行问题,你每次运行输出的结果都不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老王不在家呀
2014-03-01
知道答主
回答量:40
采纳率:0%
帮助的人:9.4万
展开全部
每次都不一样才对,要是和你书上一样就错了,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式