并發,是指一個時間段內,有幾個程序在同一個cpu上運行,但是任意時刻只有一個程序在cpu上運行。
并行,是指任意時刻上,有多個程序同時運行在多個cpu上。
在調用io操作時需要考慮到同步和異步:
同步,是指代碼調用io操作時,必須等待io完成才返回的調用方式。
異步,是指代碼調用io操作是,不必等待io完成就返回調用方式。
阻塞是調用函數時候當前線程會掛起。
非阻塞是指調用函數時候當前線程不會掛起,而是立即返回。
關于同步、異步、阻塞和非阻塞的區別在于:
同步和異步實際上是消息通訊的一種機制,可以把我們的操作當做一個消息,我們調用一個操作的時候相當于發一個消息給另外一個線程或者說是協程,我們直接拿到一個future,后期我們再通過這個future拿到結果,而不需等待操作完成。阻塞和非阻塞和一種函數調用的機制。