在Linux中,阻塞(Blocking)和非阻塞(Non-Blocking)主要是指I/O操作的方式。
阻塞(Blocking):當進行一個阻塞I/O操作時,應用程序會一直等待,直到操作完成或出現錯誤。在這期間,應用程序無法進行其他任務,會一直停滯在這個I/O操作上。
非阻塞(Non-Blocking):當進行一個非阻塞I/O操作時,應用程序會立即返回,不會等待操作完成或出現錯誤。如果操作能夠立即完成,應用程序可以繼續執行其他任務。否則,應用程序可以通過不斷查詢操作狀態(輪詢)或通過回調函數來等待I/O操作完成。
總結起來,阻塞模式下,應用程序會一直等待I/O操作完成;而非阻塞模式下,應用程序會立即返回,不會等待I/O操作完成。非阻塞模式通常需要應用程序主動查詢或回調來獲取操作完成的狀態。