作者dauntless (火车呼噜呼噜)
看板java
标题[问题] Thread新手发问
时间Tue Nov 20 00:20:01 2007
想请问一下一个题目:
撰写一个有两个执行绪的程式,分别模拟两个完猜全游戏的人,每次出拳後显示
输赢的状况,及目前双方输赢的次数
我觉得这题目应该要达成下列几件事情
1.两个人(假设为甲、乙)各是一个Thread,程式实际上在跑的时候,有可能是甲
先出拳,也有可能是乙先出拳
2.要有一个机制让他们出拳後,要停下来裁判谁输谁赢
3.要有一个机制让他们同时启动,经过裁判後再决定要不要再次启动
显然裁判的动作要用synchronized来达成
但要怎麽样做才能让甲、乙两个Thread都已完成出拳的动作後,才进行裁判的动作呢
?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.172.195.250
1F:推 TonyQ:我觉得synchronized 不是很必要... 11/20 01:59
2F:推 freesamael:2. barrier 11/20 03:48
3F:推 willieliao:甲乙各用一个THREAD,START之後主THREAD作JOIN的动作 11/20 06:41
4F:→ willieliao:甲乙出完拳之後两个THREAD会RETURN到主THREAD JOIN 11/20 06:42
5F:→ willieliao:的下一行,把你的裁判写在这里 11/20 06:44
6F:→ willieliao:如果裁判要重新启动的话再启动(放一个LOOP在外面) 11/20 06:45
7F:推 H45:如果要模拟的很像真实状况的话,可以试试 POLLING 如同 I/O 般 11/20 07:37