• 多任务同时处理, 类比: 多核处理器
  • 为什么并行
    • 提高执行效率
  • 分类
    • 任务并行化
    • 数据并行化
  • CPU交替任务
    • EDSAC串行任务
    • 协作式
      • 可能独占,Windows3.1, Mac OS 9
    • 抢占式
      • 任务管理器强制中断,Windows95, Mac OS 9以后版本, Unix, Linux
  • 竞态条件
  • 并行代码
    • 编译代码顺序不确定,或执行顺序不确定
    • 看一句代码的内部实现, 在其中执行了行为
      • go func () { x = make([]int, 10) }()
      • x[9] = 1
  • 业务并行解耦条件(满足幺半群性质)
    • 封闭性
      • 业务运算结果是业务
    • 结合律
      • 业务a、b的结果后与c执行,等同b、c的结果与a执行
    • 单位元
      • 恒等业务a与其它业务b执行,得b, 如reduce的初值