Re: [問題] single thread的聊天室

看板java作者 (LaPass)時間12年前 (2011/11/19 13:16), 編輯推噓2(209)
留言11則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《rock1985 (疾風)》之銘言: : 小弟最近再重練以前寫過的聊天室 : 不過太久遠了所以感覺有點不熟悉 : 想請問一下大家 我現在要做1對1的聊天 : 如果只用single thread 去開socket : 可以做到完全的一來一往的聊天室嗎?? : 我現在寫到的部分server可以回傳client的輸入 : 但是我做了幾種方式都沒有辦法讓server端也可以打字和client對話 : 不然就是講一講會卡在中間 : 下面是我的code,想請教大家server端要怎麼修改才可以讓兩邊正常自由的對話呢 : server: : http://pastie.org/2886576 : client: : http://pastie.org/2886578 : 謝謝大家 不好意思,想借這篇問一下 連線時開的執行緒數目到底有什麼影響? 之前我寫聊天室時 是開一個使用者開兩條執行緒 兩邊可以同時收、發訊息 那.... 效能或是系統上會不會有什麼問題,或是有需要顧慮的地方? 如果一個使用者兩條的話 5000人在線就會有10000條執行緒同時在運作 聽起來蠻嚇人的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.140.89.200

11/19 13:28, , 1F
切換很浪費時間
11/19 13:28, 1F

11/19 15:55, , 2F
儲存很浪費記憶體
11/19 15:55, 2F

11/19 17:27, , 3F
那像Ptt那種十萬人在線到底是怎麼辦到的?
11/19 17:27, 3F

11/19 17:29, , 4F
雖然語言、系統都有差別,但應該有個原則之類的吧?
11/19 17:29, 4F

11/19 19:49, , 5F
一條thread可以不只服務一個user 而且在線!=需要馬上服務
11/19 19:49, 5F

11/19 19:54, , 6F
就像5個服務生可以服務100個人
11/19 19:54, 6F

11/19 20:29, , 7F
了解 感謝
11/19 20:29, 7F

11/19 20:56, , 8F
五樓專業
11/19 20:56, 8F

11/19 22:07, , 9F
Java 有 NIO, 可選用 Apache Mina or JBoss Netty
11/19 22:07, 9F

11/19 22:11, , 10F
C 則用 libevent or libev
11/19 22:11, 10F

11/20 09:03, , 11F
謝謝關鍵字
11/20 09:03, 11F
文章代碼(AID): #1EnplBse (java)
文章代碼(AID): #1EnplBse (java)