執行緒、協程
參考文章:goroutine 和執行緒的區別
三個方面 | 執行緒 | 協程 |
---|---|---|
記憶體消耗 | 1M | 2K,自動擴容 |
建立銷毀 | 核心級 | 使用者級 |
切換 | 需儲存恢復16個通用暫存器、4個段暫存器 16個XMM、16個AVX、PC、FP、SP |
需儲存恢復PC、BP、SP |
(耗時) | 1000-1500納秒 | 200納秒 |
同步非同步、阻塞非阻塞
通俗講解 非同步,非阻塞和 IO 複用解釋的很清楚。這裡我舉一個例子,假設你和老婆要吃早餐上班,兩人分配的任務是這樣的:你烤麵包(有面包機),老婆燒開水(有燒水壺),然後兩人還需刷牙洗臉(嘿嘿沒錯,早餐就是白開水加麵包)。
兩兩組合的場景:
- 同步阻塞:同步是指你完成任務後老婆才開始任務,阻塞是指烤麵包和燒開水的時候我和老婆都在旁邊傻等著。
- 同步非阻塞:同步是指你完成任務後老婆才開始任務,非阻塞是指烤麵包和燒開水的時候我和老婆在刷牙洗臉。
- 非同步阻塞:非同步是指我和老婆同時開工完成任務,阻塞是指烤麵包和燒開水的時候我和老婆都在旁邊傻等著。
- 非同步非阻塞:非同步是指我和老婆同時開工完成任務,非阻塞是指烤麵包和燒開水的時候我和老婆在刷牙洗臉。
本作品採用《CC 協議》,轉載必須註明作者和本文連結