多线程入门
多线程是一种编程技术,它包括将任务划分为单独的执行线程。这些线程通过分配给不同的处理核心或通过时间切片同时运行。
在设计多线程程序时,应尽可能使线程彼此独立,以实现最大的加速。
实际上,线程很少完全独立,这使得同步变得必要。
可以使用 Amdahl 定律计算最大理论加速。
好处
- 通过有效使用可用的处理资源加快执行时间
- 允许进程保持响应,而无需拆分冗长的计算或昂贵的 I / O 操作
- 轻松优先于某些操作优先于其他操作
缺点
- 如果不仔细设计,可能会引入难以发现的错误
- 创建线程涉及一些开销