Concurrent Computing
Concurrency
同時開始處理多個任務,就像是有一位廚師同時在備料和煮麵,過程中會不斷地切換任務
Multi-threading (多執行緒/多線程)
- 在同一 process 中同時執行多個 thread
- 所有 thread 共享相同 的內存空間,因此可以輕鬆地共享資源和數據
- 通常用於提高程序的效率,使得同一 thread 可以同時執行多個任務
Async
- 允許 thread 在執行過程中不必等待某些操作的完成,而是可以繼續執行其他任務
- 程式會發出請求,但不會立即等待結果,而是繼續執行其他任務。當結果可用時,再處理它
- 通常與 Non-Blocking I/O 操作一起使用,以提高系統的效率和吞吐量
Parallelism
指在同一時間執行多個操作,就像是同時有兩位廚師,一位負責處理備料,一位負責煮麵任務
Multi-processing (多處理程序/多進程)
- 在電腦系統中同時運行多個獨立的 process
- 每個 process 都擁有自己獨立的內存空間互不影響
- 同時利用多個 cpu,以提高系統的效率和性能