第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Netty快速入門(02)Java I/O(BIO)介紹

標(biāo)簽:
Java

BIO简介

Java I/O,也叫Blocking I/O,也就是阻塞式I/O。

file

BIO的流程比较简单,在服务端创立一个ServerSocket去监听,等待连接。客户端创建一个Socket连接过来,服务器端就能接收到连接请求,建立一个连接。连接建立起来后,服务端和客户端就能通过一个流式API进行一个数据通信,进行一些读写操作。

单线程BIO示例

来看一个BIO的例子,服务端创立一个ServerSocket,然后等待连接(accept就是阻塞的):

file

连接过来以后,使用IO流方式读取和写入数据,处理的方法如下:

file

客户端发起Socket连接,然后同样用IO流的方式读取和写入数据:

file

上面这些代码相信很多人都写过,也都熟悉,可以看到单线程的BIO编程逻辑清晰,内容简单,(可惜效率低。。。),运行结果如下:

file

file

程序整个过程就是一个单线程的,如果这个时候再来一个客户端连接,那么新来的客户端就无法建立连接,因为上一个连接已经阻塞在while循环中。

多线程BIO示例

来看一个多线程的BIO例子,同样是服务端创立一个ServerSocket,然后等待连接(accept就是阻塞的),区别是,来一个连接就启动一个新线程去处理:

file

处理的线程方法如下,操作上和单线程的差不多:

file

多线程体现在服务端,客户端的写法基本没变,下面我们启动一个服务端和三个客户端,查看效果:

file

file

file

file

这种方式明显的缺点就是当连接多的时候,线程数量会爆掉,无法支持高并发的情况。虽然可以使用线程池保护机器,但是无法从根本上解决高并发问题。下面是使用线程池的例子:

file

客户端代码一样,此处不再演示。

本文由博客一文多发平台 OpenWrite 发布!

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
1
獲贊與收藏
1

關(guān)注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消