作者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