您好,登錄后才能下訂單哦!
小編給大家分享一下java中bio指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
BIO:同步并阻塞,服務器實現模式為一個連接一個線程,即客戶端有連接請求時服務器端就需要啟動一個線程進行處理,如果這個連接不做任何事情會造成不必要的線程開銷,當然可以通過線程池機制改善。BIO方式適用于連接數目比較小且固定的架構,這種方式對服務器資源要求比較高,并發局限于應用中。
BIO
同步阻塞式IO,相信每一個學習過操作系統網絡編程或者任何語言的網絡編程的人都很熟悉,在while循環中服務端會調用accept方法等待接收客戶端的連接請求,一旦接收到一個連接請求,就可以建立通信套接字在這個通信套接字上進行讀寫操作,此時不能再接收其他客戶端連接請求,只能等待同當前連接的客戶端的操作執行完成。
如果BIO要能夠同時處理多個客戶端請求,就必須使用多線程,即每次accept阻塞等待來自客戶端請求,一旦受到連接請求就建立通信套接字同時開啟一個新的線程來處理這個套接字的數據讀寫請求,然后立刻又繼續accept等待其他客戶端連接請求,即為每一個客戶端連接請求都創建一個線程來單獨處理,大概原理圖就像這樣:
然此時服務器具備了高并發能力,即能夠同時處理多個客戶端請求了,但是卻帶來了一個問題,隨著開啟的線程數目增多,將會消耗過多的內存資源,導致服務器變慢甚至崩潰。
IO方式適用于連接數目比較小且固定的場景,這種方式對服務器資源要求比較高,并發局限于應用中。
以上是java中bio指的是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。