概念

并发:
同一时间段,多个任务请求执行,任一时刻只能处理其中一个任务。
发生在 同一实体,单处理器
目的是 提高系统响应速度

并行:
同一时间段,多个任务同时执行,任一时刻同时处理多个任务。
发生在 不同实体,多处理器
目的是 提高处理能力

核心区别:任务间是否存在处理器的竞争关系。

死锁

原理:

  • 互斥
    • 需求如此
  • 请求与保持
    • 先机优势:首次执行一次性分配资源,避免等待。
  • 不可剥夺
    • 兜底策略:申请不到时,主动释放已有资源。
  • 循环等待
    • 万能钥匙:按序申请,给资源编号,按序号优先级先后申请。此时多资源并发互斥变成单资源。

理解并发问题:一切都是状态机

并发编程技巧:

进程、线程、协程