3分鐘了解非同步(Async)和多執行緒(Multithreading)
2024-05-27 03:00
前言
今天要介紹的是同步、非同步、多執行緒的觀念,我會再三分鐘內用簡單的例子來解釋三者的差異。
同步、非同步、多執行緒
現在舉個例子來解釋同步、非同步、多執行緒,假設我有一家物流公司,內有一個車庫,一個車庫裡有 3 台車,有六條路線(A-F)需要送貨,如下圖:
同步
同步就是讓車庫裡的一台車去 A 路線送貨,送完回來後再派一台車去 B 路線送貨...,直到 F 路線送完,使用此方法效率極低。
非同步
非同步就是讓車庫裡的三台車同時去送 A、B、C 三條路線,先回來的車在去送 D 路線...直到送完,使用此方法就能最大限度的壓榨利用車輛來提升送貨效率。
多執行緒
多執行緒就是直接多蓋一個新的車庫,讓六台車同時去送 A-F 路線,雖然這樣可以用最快的速度送完 6 條路線,但蓋車庫是需要錢的 (記憶體容量),如何取捨就看各位了。
最後
概念置換一下,物流公司=記憶體,車庫=執行緒,車=每個執行緒同時能執行的任務數量,以上是我對同步、非同步、多執行緒的見解,若有問題也可以留言給我,下次見~