日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反应堆Reactor

發布時間:2024/4/13 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反应堆Reactor 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在我們已經對阻塞I/O 已有了一定了解,我們知道阻塞I/O 在調用InputStream.read()方法時是阻塞的,它會一直等到數據到來時(或超時)才會返回;同樣,在調用ServerSocket.accept()方法時,也會一直阻塞到有客戶端連接才會返回,每個客戶端連接過來后,服務端都會啟動一個線程去處理該客戶端的請求。阻塞I/O 的通信模型示意圖如下:

如果你細細分析,一定會發現阻塞I/O 存在一些缺點。根據阻塞I/O 通信模型,我總結了它的兩點缺點:

1. 當客戶端多時,會創建大量的處理線程。且每個線程都要占用棧空間和一些CPU 時間

2. 阻塞可能帶來頻繁的上下文切換,且大部分上下文切換可能是無意義的。在這種情況下非阻塞式I/O 就有了它的應用前景。?

Java NIO 是在jdk1.4 開始使用的,它既可以說成“新I/O”,也可以說成非阻塞式I/O。下面是Java NIO 的工作原理:

1. 由一個專門的線程來處理所有的IO 事件,并負責分發。

2. 事件驅動機制:事件到的時候觸發,而不是同步的去監視事件。

3. 線程通訊:線程之間通過wait,notify 等方式通訊。保證每次上下文切換都是有意義的。減少無謂的線程切換。

下面貼出我理解的Java NIO 反應堆的工作原理圖:

(注:每個線程的處理流程大概都是讀取數據、解碼、計算處理、編碼、發送響應。)

?

總結

以上是生活随笔為你收集整理的反应堆Reactor的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。