几个重要的概念
- 同步(synchronous)和异步(asynchronous)
- 并发(Concurrency)和并行(Parallelism)
- 临界区
- 阻塞(Blocking)和非阻塞(Non-Blocking)
- 锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)
阻塞
非阻塞
- 无障碍
- 无障碍是一种最弱的非阻塞调度
- 自由出去临界区
- 无竞争时,有限的步内完成操作
- 有竞争时,回滚数据
- 无锁
- 是无保障的
- 保证有一个线程可以胜出
- (在无障碍的前提下加约束,(因为无障碍可能存在,循环竞争))
- 无等待
- 无等待
- 要求所有的线程都必须在有限步完成
- 无饥饿的(不会有线程永久的在临界区)