多线程入门

多线程是一种编程技术,它包括将任务划分为单独的执行线程。这些线程通过分配给不同的处理核心或通过时间切片同时运行。

在设计多线程程序时,应尽可能使线程彼此独立,以实现最大的加速。
实际上,线程很少完全独立,这使得同步变得必要。
可以使用 Amdahl 定律计算最大理论加速。

好处

  • 通过有效使用可用的处理资源加快执行时间
  • 允许进程保持响应,而无需拆分冗长的计算或昂贵的 I / O 操作
  • 轻松优先于某些操作优先于其他操作

缺点

  • 如果不仔细设计,可能会引入难以发现的错误
  • 创建线程涉及一些开销