多執行緒入門

多執行緒是一種程式設計技術,它包括將任務劃分為單獨的執行執行緒。這些執行緒通過分配給不同的處理核心或通過時間切片同時執行。

在設計多執行緒程式時,應儘可能使執行緒彼此獨立,以實現最大的加速。
實際上,執行緒很少完全獨立,這使得同步變得必要。
可以使用 Amdahl 定律計算最大理論加速。

好處

  • 通過有效使用可用的處理資源加快執行時間
  • 允許程序保持響應,而無需拆分冗長的計算或昂貴的 I / O 操作
  • 輕鬆優先於某些操作優先於其他操作

缺點

  • 如果不仔細設計,可能會引入難以發現的錯誤
  • 建立執行緒涉及一些開銷