1. 程式人生 > >學習協程前需要理解的幾個概念

學習協程前需要理解的幾個概念

一、併發、並行、同步、非同步、阻塞、非阻塞

1、併發是指一個時間段內,有幾個程式同時在一個cpu上執行,但任意一時刻只有一個程式在cpu上執行

2、並行是指任意一時刻點上,有多個程式同時執行在多個cpu上

3、同步是指程式碼呼叫IO操作時,必須等待IO操作完成才返回的呼叫方式

4、非同步是指程式碼呼叫IO操作時,不必等待IO操作完成就返回的呼叫方式

5、阻塞是指呼叫函式的時候當前執行緒被掛起

6、非阻塞是指呼叫函式的時候當前函式不會被掛起,而是立即返回

二、Unix下的五種I/O模型

1、阻塞I/O

2、非阻塞I/O

3、I/O複用

4、訊號驅動I/O (不常用)

5、非同步I/O

詳解連結————五種IO模型

三、多路複用(select\poll\epoll)

   基本上select有3個缺點:

  1. 連線數受限
  2. 查詢配對速度慢
  3. 資料由核心拷貝到使用者態

   poll改善了第一個缺點

    epoll改了三個缺點.

select、poll、epoll總結