永发信息网

java 多线程子线程唤醒主线程问题

答案:2  悬赏:30  手机版
解决时间 2021-04-11 00:31
场景是这样的,主线程里面创建了两个相同的thread,分别命名为A和B吧。
想实现的目的是,主线程可能在等待10秒钟,让子线程A和B去分别完成相同的任务,有可能由于某个原因,A和B执行所需的时间会不同,但是我想他们两者其中一个完成之后就马上唤醒主线程(如果是A先完成了,那么主线程就不等待B),然后主线程继续去执行其他任务。如果过去10秒钟,A和B都没完成任务,那么主线程就唤醒,继续完成其他的任务
请问一下大家有什么方式可以实现呢?
最佳答案
设一个三个线程的共享对象o

a.start(); b.start();//启动子线程
主线程中
o.wait(10*1000);//主线程中等10秒
同时A、B中各有一个执行完的通知
a或b的run(){
.....
o. notify();
}
基本的线程操作...
全部回答
java使用单纯的wait/notify是无法唤醒指定线程的 一般的做法是修改一个特定标识,然后notifyall,被唤醒的线程查看该标识是否指定自己处理,是就运行下去,不是就继续wait 还有一种做法是针对每一个线程做一个wait object,要唤醒哪一个就notify哪一个object就行了,但是能不能这样做去取决于你的业务需求
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题Mum,don'tworry________thetrip.We'r
新塘车太太汽车精品专营店我想知道这个在什么
---- Tony , I will go to America with
解答题澳大利亚总理陆克文认为,全球金融危机
在QQ三国里面.对别人造成伤害转换成自己的生
蒜泥那意思是什么,把蒜蓉砸成蒜泥的那个是什
将jabra stone的便携式充电器充满后,将耳机
观察下面三行数字:(1)-2,4,-8,16,-32
病字怎么组词
为什么我的电脑经常蓝屏
国家公务员考试去哪里下载免费行测和申论模拟
我的朋友女生昨晚就肚子一下一下的疼到今天了
嘉利达手机T808可以下载移动英语通吗?
东湖花园三号小区西门这个地址在什么地方,我
如:笑眯眯.( )糊糊
推荐资讯
公益爱心口号,爱心社的主要工作是啥
高老庄(师院店)在哪里啊,我有事要去这个地方
东来顺商行这个地址在什么地方,我要处理点事
我在迅雷游戏大厅下载的仙剑三,想用窗口化工
Do you know the boy father died in the fir
Wearethinkingabout_______Guilinthi
怎样点燃QQ飞车的图标
双色球红号1到33一共多少注啊
姐姐生了个女儿祝福语,朋友生女儿祝福语
死海为什么不会淹死人??
为什么我不能进入我的漂流岛
是同情还是无情?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?