作者LaPass (LaPass)
看板java
標題Re: [問題] single thread的聊天室
時間Sat Nov 19 13:16:57 2011
※ 引述《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
推 lovdkkkk:切換很浪費時間 11/19 13:28
→ lovdkkkk:儲存很浪費記憶體 11/19 15:55
→ LaPass:那像Ptt那種十萬人在線到底是怎麼辦到的? 11/19 17:27
→ LaPass:雖然語言、系統都有差別,但應該有個原則之類的吧? 11/19 17:29
→ aleelyle:一條thread可以不只服務一個user 而且在線!=需要馬上服務 11/19 19:49
→ aleelyle:就像5個服務生可以服務100個人 11/19 19:54
→ LaPass:了解 感謝 11/19 20:29
推 lovdkkkk:五樓專業 11/19 20:56
→ dou0228:Java 有 NIO, 可選用 Apache Mina or JBoss Netty 11/19 22:07
→ dou0228:C 則用 libevent or libev 11/19 22:11
→ LaPass:謝謝關鍵字 11/20 09:03