线程同步问题

sth4nth 2004-06-14 03:28:09
主线程开启N个线程,这N个线程独立运行至一段程序。主线程等待所有其他线程运行结束再开始运行,如何实现。
_____
/|\
/ | \
\ | /
\|/
-----
...全文
184 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanhuaiyu 2004-06-15
  • 打赏
  • 举报
回复
jiangnanyuzi(江南愚子) 说的不错,用wait()/notifyAll(),但是要注意:
1.count要用锁保护(用同步);
2.在主线程中调用Wait()方法;
3.在其他线程中当条件满足时,调用notifyAll();
wolfwenbo 2004-06-15
  • 打赏
  • 举报
回复
支持!
gzhua99 2004-06-15
  • 打赏
  • 举报
回复
我没用jdk的 是avalon里的实现的,不知道行不?
shuneng 2004-06-15
  • 打赏
  • 举报
回复
gz
yeahnope 2004-06-15
  • 打赏
  • 举报
回复
suspend()在jdk1.4里面已经deprecated.
HawaiiLeo 2004-06-15
  • 打赏
  • 举报
回复
suspend() 在1.3的版本就不支持了,不过偶对join 不了解。
gzhua99 2004-06-15
  • 打赏
  • 举报
回复
maowu(猫呜) 那为什么suspend你不赞成 可以给我讲解一下吗?
lotofu 2004-06-15
  • 打赏
  • 举报
回复
jiangnanyuzi(江南愚子) ( ) 的方法肯定可以,至于线程的join倒是可以尝试一下!
wwwasp 2004-06-15
  • 打赏
  • 举报
回复
用join();等待子线程结束就可以了
maowu 2004-06-15
  • 打赏
  • 举报
回复
suspend() was deprecated.
gzhua99 2004-06-15
  • 打赏
  • 举报
回复
//悬挂主线程
Thread mythread=Thread.currentThread();
mythread.suspend();
CoolAbu 2004-06-15
  • 打赏
  • 举报
回复
看看线程的Join方法
raymond323 2004-06-15
  • 打赏
  • 举报
回复
mark
北极猩猩 2004-06-15
  • 打赏
  • 举报
回复
回楼上,和每个子线程进行join
majy 2004-06-15
  • 打赏
  • 举报
回复
用join()方法不是很好,问题在于你把主线程和哪个子线程进行join()呢
lizzz 2004-06-15
  • 打赏
  • 举报
回复
用join()。
江南愚子 2004-06-14
  • 打赏
  • 举报
回复
主线程设置一个整型属性count,初值为0,每启动一个线程,count++
启动完所有线程后wait()
定义主线程方法
public void forNotify(){
if((--count)==0) notify();
}
在每个线程结束的时候调用主线程的forNitify()方法
矜持的射手 2004-06-14
  • 打赏
  • 举报
回复
用sleep()方法,主线程可以设置sleep()时间长些,等其他线程运行结束后主线程再运行。

比如主线程调用sleep(5000),即挂起5秒再运行,其他线程只要在5秒内完成就可以了
sth4nth 2004-06-14
  • 打赏
  • 举报
回复
自己顶一下

62,614

社区成员

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

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