亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不通過多線程 似乎也能完成多客戶端請求

如果不用線程 直接在Server 類中加入while死循環同樣是達到多客戶端請求的效果??!

正在回答

3 回答

提到多線程,往往還會想起另一個詞:并發。前者是手段,后者是目的。

并發,顧名思義指同時發生,這里這個問題我所知只有多線程能解決。題主所提出的猜想咋一看似乎可行,實則不然。假如我們將講師的代碼改一改,將服務端給客戶端發的消息改成用戶在控制臺輸入,然后再發給客戶端,而客戶端也類似于此修改。修改之后按照題主的猜想,假設第一個客戶端連上服務端后,用戶不往控制臺輸入內容,那么客戶端和服務端程序就會卡(阻塞)在相應的這一行,直到用戶往里輸入內容并以回車結束后才會繼續執行程序。

這此期間,服務端一直停著,試問如何分身去響應第二、第三……,甚至更多用戶的申請呢?

多線程的并發,只要沒有公用同一資源,相互之間獨立運行、互不影響。講個類比的故事。

沙僧要去流沙河做無本買賣,可一個人沒膽量去就來求大師兄,于是大師兄就拔了一根毛一吹,變成一個分身陪沙僧去了;八戒要去高老莊強媳婦兒,可一個人搶不贏就來求大師兄,于是大師兄就拔了一根毛一吹,變成另一個分身陪八戒去了;……

這個故事里的大師兄就好好比是服務端,它負責等待各路鬼神來求他辦事兒,并變出一個個相互獨立、互不影響的分身去幫各路妖精干各自的事情。吹毛變分身的是大師兄,就好比是循環等待并處理申請的線程啟動類;辦事兒的是分身,就好比一個個被線程啟動類啟動的線程。

p.s. 不知道這個一時隨想的類比例子是否貼切,容易理解?

4 回復 有任何疑惑可以回復我~

給樓上+1

0 回復 有任何疑惑可以回復我~

線程的好處在于同時進行不延遲,

加個while:第一個客戶端響應完,執行完第二個才可以進入,也就是同一時間只能響應一個

利用線程 :可以同時執行serversocket.start(),即同時響應多個

2 回復 有任何疑惑可以回復我~
#1

花黑暗里開放

正解!
2016-05-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

不通過多線程 似乎也能完成多客戶端請求

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號