一篇文章帶你搞定BIO實(shí)戰(zhàn)
2020-03-26 14:03 作者:架構(gòu)風(fēng)清揚(yáng)-趣學(xué)旅程 | 我要投稿
1,案例概述
案例的目標(biāo):
通過(guò)編寫(xiě)服務(wù)端和客戶(hù)端進(jìn)行通信的案例,來(lái)將之前的技術(shù)點(diǎn)串聯(lián)起來(lái)
編寫(xiě)服務(wù)端,接收客戶(hù)端的請(qǐng)求
編寫(xiě)客戶(hù)端,發(fā)送請(qǐng)求信息給服務(wù)端
2,傳統(tǒng)的BIO實(shí)現(xiàn)方式(同步阻塞IO)
Server端

2,處理類(lèi)Handler

3,Client端

3,傳統(tǒng)模式存在的問(wèn)題
存在的問(wèn)題,每個(gè)客戶(hù)端都需要一個(gè)線(xiàn)程來(lái)處理,當(dāng)客戶(hù)端非常多時(shí),就會(huì)出現(xiàn)線(xiàn)程的頻繁上下文切換問(wèn)題,造成性能消耗。而且創(chuàng)建線(xiàn)程本身,也是一個(gè)消耗性能的操作。
4,NIO的實(shí)現(xiàn)方式(同步非阻塞IO)
目標(biāo):?jiǎn)尉€(xiàn)程實(shí)現(xiàn)多路復(fù)用的效果,就是一個(gè)線(xiàn)程可以服務(wù)多個(gè)客戶(hù)端。
所謂多路復(fù)用,就是一個(gè)線(xiàn)程可以給多個(gè)客戶(hù)端連接復(fù)用的意識(shí)
B站不支持直接編輯代碼的方式,看來(lái)對(duì)技術(shù)文章的發(fā)布支持還是比較一般,暫時(shí)只能貼圖了
標(biāo)簽: