看板 java 關於我們 聯絡資訊
前言:   想要寫個網路遊戲,其中 server & client 都是自行開發,   連線方面採用 TCP 通訊。 目前的進度是:   server 只要在 client 連線就建立一個 Thread 與 client 作互動,   但是在 client 沒有任何 input 的話, Thread 就會一直等候 message。 目標:   想要由一個 Thread 處理多個連線傳入的訊息,   因為如果連線量多的話, Thread 會建立非常多個, 會造成 server 過度的負荷,甚自因此 crash,   因此想以上述的目標改進這個缺陷, 想請教的是:   如何讓 Thread A 在限定等候訊息的時間,比方說等候 250 ms,   在沒有訊息傳入時,切換到另一個連線為他服務, 循環性的讀取(A→B→C→D→A→B....), 當讀取到訊息時,會交由其他 Thread (not A)處理, 而 A 繼續做讀取的動作。 謝謝各位大大認真的看完,感謝。 謝謝指教。 m(_@_)m -- ""是"喜歡"的累積! "喜歡"是"感覺"的累積! "感覺"是"緣份"的累積! "緣份"是"前世"的累積! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.9.2
TonyQ:就是working queue啊 , 不過相對的等待也要比較久... 02/12 13:50
qrtt1:要不要直接改 non blocking socket 比較快 :P 02/12 14:41
csihcs:T大可以說明白一點嗎???不是很懂說QQ" 02/12 14:55
csihcs:q大你是只用 UDP ??? 02/12 14:56
sbrhsieh:NIO, channel, selector 02/12 16:31
slalala:我之前的寫法是傻傻的寫一個timer client0.5秒自動斷線 02/12 17:57
csihcs:謝謝 sb 大提供的意見,我朝這個方向試試看。 02/12 21:28
csihcs:sl大,因為我需要 client 保持連線狀態,所以沒法適用,thx 02/12 21:45
qrtt1:為什麼你覺得我只用 UDP !? 02/12 21:59
slalala:q大請開釋一下吧 想對這議題多點了解 lmgtfy不到結果(羞) 02/12 22:34
csihcs:q大抱歉誤會了,原本是要打"是指用UDP"結果沒注意到打錯字 02/13 01:25
csihcs:謝謝 q 大提供的意見,我也會在這個地方試試看。 m(_@_)m 02/13 01:37
qrtt1:囧, 別再大來再去了. 只是剛 好寫過罷了.. 02/13 09:39
Yshuan:要做同步協調呀 @@~ 之前做專題只草草的限制連線數而已... 02/13 17:18