多线程与并行分解 考试重点

并行基础

从串行算法挖掘并发性:任务分解、数据分解、共享资源互斥与线程映射。

结构示意
flowchart LR
    Serial --> Decompose --> Threads --> Sync
知识说明
并行强调单机多核并发执行;先分解再映射到线程/线程池,并用锁或信号量保护共享资源。
特点
  • 任务/数据两种分解
  • 互斥与竞态控制
优点
  • 提升多核利用率
  • 为并发服务器打基础
局限
  • 同步不当引入死锁与开销
适用
计算密集并行 并发网络服务
例子展示 —— 多线程并行示例
问题

将计算密集循环分块到线程池并行执行。

做法

数据块划分后独立计算,汇总时注意累加类共享数据的同步。

flowchart LR
    Serial --> Decompose --> Threads --> Sync
ExecutorService pool = Executors.newFixedThreadPool(n);
// submit chunk tasks, then await termination
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor() as ex:
    ex.map(work, chunks)