java 中多线程执行完后输出结果的问题

edith000 2008-05-22 04:15:39

我在main函数中创建了4个线程,
Test r = new test();
Thread t = new Thread(r);
for(int n = 0;n<4;n++){
t.start();
}

这4个线程都对一个类里的数组做存取操作,
现在要等所有我创建的线程跑完后才能输出这个数组,请问这个输出该怎么写?
因为不能确定这些线程什么时候跑完,我写在main函数里跑多个线程没出来结果,单个线程就能出来结果。

能有简单的例子代码吗?

谢谢!
...全文
500 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
迷恋微笑 2011-12-13
  • 打赏
  • 举报
回复
引用 3 楼 cyberpeng 的回复:
首先,你不是起了四个线程,而是一个线程起了四次。
其次,这个可以通过某个标志线程执行状况的变量来实现。
edith000 2008-05-22
  • 打赏
  • 举报
回复

正在想怎么捕获到循环的最后一个线程,原来可以用数组,再用join
这个方法太妙了,给分!!!!
云上飞翔 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 edith000 的帖子:]

我在main函数中创建了4个线程,
Test r = new test();
Thread t = new Thread(r);
for(int n = 0;n <4;n++){
t.start();
}

这4个线程都对一个类里的数组做存取操作,
现在要等所有我创建的线程跑完后才能输出这个数组,请问这个输出该怎么写?
因为不能确定这些线程什么时候跑完,我写在main函数里跑多个线程没出来结果,单个线程就能出来结果。

能有简单的例子代码吗?

谢…
[/Quote]
答:例子代码,供你参考:

 Test r = new Test();
 Thread[] t = new Thread[4];
 for(int n = 0;n <4;n++){
t[n]= new Thread(r);//创建四个线程
t[n].start(); //启动这四个线程
} //for(n)

for(int i=0;i<4;i++)
{
try {
t[i].join();//等待这四个线程都执行结束
} catch (InterruptedException e) { }
}//for(i)

//当上边这四个线程都执行结束后,才能执行下一条println()语句。
System.out.println("END!");


siyue_qi 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cyberpeng 的回复:]
首先,你不是起了四个线程,而是一个线程起了四次。
其次,这个可以通过某个标志线程执行状况的变量来实现。
[/Quote]
zy2419 2008-05-22
  • 打赏
  • 举报
回复
线程还没搞清楚呢,线程搞清楚了 再看看线程调度方面的知识吧
cuijie_cn 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 burningice44 的回复:]
你的其实只是把一个线程开了四次
[/Quote]
humcomm 2008-05-22
  • 打赏
  • 举报
回复
Test r = new test();
Thread t;
for(int n = 0;n <4;n++){
t=new Thread(r)
t.start();
}
burningice44 2008-05-22
  • 打赏
  • 举报
回复
你的其实只是把一个线程开了四次
cyberpeng 2008-05-22
  • 打赏
  • 举报
回复
首先,你不是起了四个线程,而是一个线程起了四次。
其次,这个可以通过某个标志线程执行状况的变量来实现。
我是小辉辉 2008-05-22
  • 打赏
  • 举报
回复
首先你代码我个人感觉就是错的:
Test r = new test();
Thread t1 = new Thread(r);
Thread t2 = new Thread(r);
Thread t3 = new Thread(r);
Thread t4 = new Thread(r);
t1.start();
t2.start();

t3.start();

t4.start();
edith000 2008-05-22
  • 打赏
  • 举报
回复

是不是输出这个方法也要写在另一个实施了Runnable接口的类里,
然后在我的4个线程后,再跑输出的这个线程?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧