Java I/O模型與NIO解析__Java

來源:互聯網
上載者:User
1.Java IO模型解析 

也許很多朋友在學習NIO的時候都會感覺有點吃力,對裡面的很多概念都感覺不是那麼明朗。在進入Java NIO編程之前,我們今天先來討論一些比較基礎的知識:I/O模型。下面本文先從同步和非同步概念 說起,然後接著闡述了阻塞和非阻塞的區別,接著介紹了阻塞IO和非阻塞IO的區別,然後介紹了同步IO和非同步IO的區別,接下來介紹了5種IO模型,最後介紹了兩種和高效能IO設計相關的設計模式(Reactor和Proactor)。

  以下是本文的目錄大綱:

  一.什麼是同步。什麼是非同步。

  二.什麼是阻塞。什麼是非阻塞。

  三.什麼是阻塞IO。什麼是非阻塞IO。

  四.什麼是同步IO。什麼是非同步IO。

  五.五種IO模型

  六.兩種高效能IO設計模式

  一.什麼是同步。什麼是非同步。

  同步和非同步概念出來已經很久了,網上有關同步和非同步說法也有很多。以下是我個人的理解:

  同步就是:如果有多個任務或者事件要發生,這些任務或者事件必須逐個地進行,一個事件或者任務的執行會導致整個流程的暫時等待,這些事件沒有辦法並發地執行;

  非同步就是:如果有多個任務或者事件發生,這些事件可以並發地執行,一個事件或者任務的執行不會導致整個流程的暫時等待。

  這就是同步和非同步。舉個簡單的例子,假如有一個任務包括兩個子任務A和B,對於同步來說,當A在執行的過程中,B只有等待,直至A執行完畢,B才能執行;而對於非同步就是A和B可以並發地執行,B不必等待A執行完畢之後再執行,這樣就不會由於A的執行導致整個任務的暫時等待。

  如果還不理解,可以先看下面這2段代碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 void  fun1() {            }        void  fun2() {            }        void  function(){        fun1();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.