溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java進階(10) - 網絡編程

發布時間:2020-09-01 21:15:04 來源:網絡 閱讀:251 作者:lm8751 欄目:編程語言

BIO、NIO、AIO
NIO vs IO之間的理念上面的區別(NIO將阻塞交給了后臺線程執行)

  • IO是面向流的,NIO是面向緩沖區的
    • Java IO面向流意味著每次從流中讀一個或多個字節,直至讀取所有字節,它們沒有被緩存在任何地方;
    • NIO則能前后移動流中的數據,因為是面向緩沖區的
  • IO流是阻塞的,NIO流是不阻塞的
    • Java IO的各種流是阻塞的。這意味著,當一個線程調用read() 或 write()時,該線程被阻塞,直到有一些數據被讀取,或數據完全寫入。該線程在此期間不能再干任何事情了
    • Java NIO的非阻塞模式,使一個線程從某通道發送請求讀取數據,但是它僅能得到目前可用的數據,如果目前沒有數據可用時,就什么都不會獲取。NIO可讓您只使用一個(或幾個)單線程管理多個通道(網絡連接或文件),但付出的代價是解析數據可能會比從一個阻塞流中讀取數據更復雜。?
    • 非阻塞寫也是如此。一個線程請求寫入一些數據到某通道,但不需要等待它完全寫入,這個線程同時可以去做別的事情。
  • 選擇器
    • Java NIO的選擇器允許一個單獨的線程來監視多個輸入通道,你可以注冊多個通道使用一個選擇器,然后使用一個單獨的線程來“選擇”通道:這些通道里已經有可以處理的輸入,或者選擇已準備寫入的通道。這種選擇機制,使得一個單獨的線程很容易來管理多個通道。?
      參考:https://blog.csdn.net/evan_man/article/details/50910542

NIO通信框架有Mina、Netty、Grizzly
https://blog.csdn.net/wang_snake/article/details/79249972

BIO、NIO、AIO區別
https://blog.csdn.net/guanghuichenshao/article/details/79375967

網絡編程
https://h3pl.github.io/categories/后端/Java網絡編程與NIO/page/2/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女