看板 java 關於我們 聯絡資訊
我是原PO Observer我翻了老半天還是看不懂xD 等一下要拿去問老師 不過這一題我用暴力堆磚法(?)解出來了 做法就是Thread裡頭寫一個list,用來裝所有Thread的位置 Thread物件寫一個傳出訊息的send方法 接著再寫一個public的群播的方法 從list第一個位置走到最後像這樣 for(Player element:playerList){ element.send(message); } 之後只要叫這個群播的方法它就會群播了0___0 沒有用到無窮回圈 只是寫得很醜而且結構很怪,不知道安全性是不是很糟糕我也不太懂 當初我卡住的原因是不知道各個Thread應該如何互相通知 後來直接把大家的位置寫進去就叫得到了 不知道有沒有用處...總之就貼出來給大家笑一笑XD ※ 引述《p52189 (皮爺)》之銘言: : 大家好 : 我寫了一個main方法,它會叫用多條Thread去做socket連線的動作 : 我希望這支程式能有個群播的功能,一人發話大家都看得到 : 想法是,所有Thread共用一個地址,像是把要交換的東西寫在公佈欄上那樣 : 所以這個公佈欄應該會在main方法所在的class裡頭 : 但是問題來了 : 我要怎麼通知其他Thread,公佈欄更新了呢? : 我有想過寫個timer之類的東西每幾秒刷新一次 : 不過馬上就覺得這個解法實在是太鳥了囧 : 請問該如何實作呢? : 或是整個結構打掉重寫也沒關係@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.112.188
aleelyle:此作法非thread-safe 有可能發生問題 12/12 13:16
對= = 我應該想辦法把它鎖起來
adrianshum:如設計上只會有一thread去send,非thread-safe無不可 12/13 10:18
不過看起來是有可能衝到的 因為有可能同時多人需要群播囧
qrtt1:嗯,可能得注意ConcurrentModificationException的問題 12/13 11:13
這是什麼@__@? ※ 編輯: p52189 來自: 114.44.8.217 (12/13 16:08)