[問題] Thread新手發問

看板java作者 (火車呼嚕呼嚕)時間18年前 (2007/11/20 00:20), 編輯推噓4(403)
留言7則, 4人參與, 最新討論串1/1
想請問一下一個題目: 撰寫一個有兩個執行緒的程式,分別模擬兩個完猜全遊戲的人,每次出拳後顯示 輸贏的狀況,及目前雙方輸贏的次數 我覺得這題目應該要達成下列幾件事情 1.兩個人(假設為甲、乙)各是一個Thread,程式實際上在跑的時候,有可能是甲 先出拳,也有可能是乙先出拳 2.要有一個機制讓他們出拳後,要停下來裁判誰輸誰贏 3.要有一個機制讓他們同時啟動,經過裁判後再決定要不要再次啟動 顯然裁判的動作要用synchronized來達成 但要怎麼樣做才能讓甲、乙兩個Thread都已完成出拳的動作後,才進行裁判的動作呢 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.195.250

11/20 01:59, , 1F
我覺得synchronized 不是很必要...
11/20 01:59, 1F

11/20 03:48, , 2F
2. barrier
11/20 03:48, 2F

11/20 06:41, , 3F
甲乙各用一個THREAD,START之後主THREAD作JOIN的動作
11/20 06:41, 3F

11/20 06:42, , 4F
甲乙出完拳之後兩個THREAD會RETURN到主THREAD JOIN
11/20 06:42, 4F

11/20 06:44, , 5F
的下一行,把你的裁判寫在這裡
11/20 06:44, 5F

11/20 06:45, , 6F
如果裁判要重新啟動的話再啟動(放一個LOOP在外面)
11/20 06:45, 6F

11/20 07:37, , 7F
如果要模擬的很像真實狀況的話,可以試試 POLLING 如同 I/O 般
11/20 07:37, 7F
文章代碼(AID): #17GRUr7y (java)