進程:一個運行的程序或代碼就是一個進程,一個沒有運行的代碼叫程序。進程是系統進行資源分配的最小單位,進程擁有本身的內存空間,因此進程間數據不共享,開銷大。面試
線程:調度執行的最小單位,也叫執行路徑,不能獨立存在,依賴進程的存在而存在,一個進程至少有一個線程,叫主線程,多個線程共享內存(數據共享和全局變量),所以提高程序的運行效率。多線程
協程:用戶態的輕量級線程,調度有用戶控制,擁有本身的寄存器上下文和棧,切換基本沒有內核切換的開銷,切換靈活。併發