該方式主要特點是呼叫阻塞的系統方法,是的使用者執行緒阻塞在等待i/o的資料準備過程,其常用的方式是使用執行緒池的方式,將阻塞方法的呼叫和後續的處理流程放進單獨的執行緒任務物件中,通過執行緒池來處理阻塞的方法,該處理方案的優點是:將阻塞的使用者處理邏輯與其餘的處理邏輯想隔離達到非同步的效果,並且使用執行緒池限制了系統執行緒的使用數量,避免造成占用太多的執行緒(並且該執行緒是阻塞狀態)。
非阻塞方式:其特點是呼叫非阻塞的方法,其可以立即返回結果,如果沒有準備好也會返回,表示沒有準備好,其可以設定該次等待多長時間返回,在該時間內資料準備好則立即返回,否則超時。因此該類介面需要迴圈的向系統進行輪詢資料是否處理好。其一般的應用方式是:會有乙個單獨的執行緒進行輪詢任務,一般在每次輪詢後會sleep一段時間再進行輪詢,當輪詢到有任務時,會將任務包裝成執行緒池中的任務,並提交給執行緒池進行處理。其與第一種方式最大的不同是,提交給執行緒池的任務都是可以立即處理的,而第一種方式提交的執行緒一般處於阻塞狀態等待資料準備成功後才能執行。
磁碟I O中幾種訪問檔案的方式
我們知道,讀取和寫入檔案i o操作都呼叫作業系統提供的介面,因為磁碟裝置是由作業系統管理的,應用程式要訪問物理裝置只能通過作業系統呼叫的方式工作。讀和寫對應read 和write 兩個系統呼叫。下面是幾種訪問檔案的方式 當應用程式呼叫read 介面時,作業系統檢查在核心的快取記憶體中有沒有需要的資料...
IO 集合中獲取流的幾種方式
1 從檔案中讀 public static inputstream getinputstream throws ioexception2 從網路上讀 public static inputstream getinputstream throws ioexception3 從記憶體上讀 public ...
Spring 異常處理的幾種方式
目錄 1.exceptionresolver 1 defaulthandlerexceptionresolver 2 annotationmethodhandlerexceptionresolver 4 responsestatu ceptionresolver 2.spring boot增加的兩種...