課程
/后端開發(fā)
/Java
/Java Socket應(yīng)用---通信是這樣練成的
如果不用線程 直接在Server 類中加入while死循環(huán)同樣是達(dá)到多客戶端請求的效果?。?br />
2016-04-24
源自:Java Socket應(yīng)用---通信是這樣練成的 3-5
正在回答
提到多線程,往往還會想起另一個詞:并發(fā)。前者是手段,后者是目的。
并發(fā),顧名思義指同時發(fā)生,這里這個問題我所知只有多線程能解決。題主所提出的猜想咋一看似乎可行,實(shí)則不然。假如我們將講師的代碼改一改,將服務(wù)端給客戶端發(fā)的消息改成用戶在控制臺輸入,然后再發(fā)給客戶端,而客戶端也類似于此修改。修改之后按照題主的猜想,假設(shè)第一個客戶端連上服務(wù)端后,用戶不往控制臺輸入內(nèi)容,那么客戶端和服務(wù)端程序就會卡(阻塞)在相應(yīng)的這一行,直到用戶往里輸入內(nèi)容并以回車結(jié)束后才會繼續(xù)執(zhí)行程序。
這此期間,服務(wù)端一直停著,試問如何分身去響應(yīng)第二、第三……,甚至更多用戶的申請呢?
而多線程的并發(fā),只要沒有公用同一資源,相互之間獨(dú)立運(yùn)行、互不影響。講個類比的故事。
沙僧要去流沙河做無本買賣,可一個人沒膽量去就來求大師兄,于是大師兄就拔了一根毛一吹,變成一個分身陪沙僧去了;八戒要去高老莊強(qiáng)媳婦兒,可一個人搶不贏就來求大師兄,于是大師兄就拔了一根毛一吹,變成另一個分身陪八戒去了;……
這個故事里的大師兄就好好比是服務(wù)端,它負(fù)責(zé)等待各路鬼神來求他辦事兒,并變出一個個相互獨(dú)立、互不影響的分身去幫各路妖精干各自的事情。吹毛變分身的是大師兄,就好比是循環(huán)等待并處理申請的線程啟動類;辦事兒的是分身,就好比一個個被線程啟動類啟動的線程。
p.s. 不知道這個一時隨想的類比例子是否貼切,容易理解?
給樓上+1
線程的好處在于同時進(jìn)行不延遲,
加個while:第一個客戶端響應(yīng)完,執(zhí)行完第二個才可以進(jìn)入,也就是同一時間只能響應(yīng)一個
利用線程 :可以同時執(zhí)行serversocket.start(),即同時響應(yīng)多個
花黑暗里開放
舉報(bào)
分享的是 Java 中的網(wǎng)絡(luò)編程,使用Socket實(shí)現(xiàn)網(wǎng)絡(luò)聊天通信
5 回答求指教:UDP線程接收多客戶端數(shù)據(jù)
2 回答我在用多線程實(shí)現(xiàn)多個udp客戶端的問題
1 回答在使用多線程實(shí)現(xiàn)基于UDP的多客戶端與服務(wù)端連接時,發(fā)現(xiàn)有時候客戶端可能會收不到服務(wù)端的回應(yīng)?
1 回答真的 我太多不懂!~簡單的echo我會了,為多個客戶端開啟多線程我也會。可是下面不會??
2 回答客戶端與服務(wù)端多次交互
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-01
提到多線程,往往還會想起另一個詞:并發(fā)。前者是手段,后者是目的。
并發(fā),顧名思義指同時發(fā)生,這里這個問題我所知只有多線程能解決。題主所提出的猜想咋一看似乎可行,實(shí)則不然。假如我們將講師的代碼改一改,將服務(wù)端給客戶端發(fā)的消息改成用戶在控制臺輸入,然后再發(fā)給客戶端,而客戶端也類似于此修改。修改之后按照題主的猜想,假設(shè)第一個客戶端連上服務(wù)端后,用戶不往控制臺輸入內(nèi)容,那么客戶端和服務(wù)端程序就會卡(阻塞)在相應(yīng)的這一行,直到用戶往里輸入內(nèi)容并以回車結(jié)束后才會繼續(xù)執(zhí)行程序。
這此期間,服務(wù)端一直停著,試問如何分身去響應(yīng)第二、第三……,甚至更多用戶的申請呢?
而多線程的并發(fā),只要沒有公用同一資源,相互之間獨(dú)立運(yùn)行、互不影響。講個類比的故事。
沙僧要去流沙河做無本買賣,可一個人沒膽量去就來求大師兄,于是大師兄就拔了一根毛一吹,變成一個分身陪沙僧去了;八戒要去高老莊強(qiáng)媳婦兒,可一個人搶不贏就來求大師兄,于是大師兄就拔了一根毛一吹,變成另一個分身陪八戒去了;……
這個故事里的大師兄就好好比是服務(wù)端,它負(fù)責(zé)等待各路鬼神來求他辦事兒,并變出一個個相互獨(dú)立、互不影響的分身去幫各路妖精干各自的事情。吹毛變分身的是大師兄,就好比是循環(huán)等待并處理申請的線程啟動類;辦事兒的是分身,就好比一個個被線程啟動類啟動的線程。
p.s. 不知道這個一時隨想的類比例子是否貼切,容易理解?
2016-05-10
給樓上+1
2016-04-24
線程的好處在于同時進(jìn)行不延遲,
加個while:第一個客戶端響應(yīng)完,執(zhí)行完第二個才可以進(jìn)入,也就是同一時間只能響應(yīng)一個
利用線程 :可以同時執(zhí)行serversocket.start(),即同時響應(yīng)多個