重要概念

  1. 同步(synchronous)和异步(asynchronous)
    • 同步等待方法返回
    • 异步瞬间返回,继续下一次调用
  2. 并发(Concurrency)和并行(Parallelism)
    • 并发与并行外界表现一致
    • 单核心cpu无法并行,但可以处理并行事务
  3. 临界区
    • 公共资源或者共享数据
    • 多线程访问时,可能造成临界区数据破坏
  4. 阻塞(Blocking)和非阻塞(Non-Blocking)
    • 非阻塞允许多个线程同时进入临界区
  5. 死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)
    • 死锁 不能停止服务,静态问题。循环依赖
    • 活锁 动态锁,运行时资源征用
    • 饥饿 缺乏某些资源而始终无法执行

并发级别

  1. 阻塞
  2. 非阻塞
    1. 无障碍
    2. 无锁
    3. 无等待

Amdahl定律(阿姆达尔定律)

  加速比定义:

    加速比=优化前系统耗时/优化后系统耗时

Gustafson定律(古斯塔夫森)