- 多任务同时处理, 类比: 多核处理器
- 为什么并行
- 提高执行效率
- 分类
- 任务并行化
- 数据并行化
- 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的初值
- 封闭性