并发的级别
- 阻塞(Blocking)
synchronized关键字,或者重入锁时就会产生阻塞的线程
- 无饥饿(Starvation-Free)
低优先级线程产生饥饿
- 无障碍(Obstruction-Free)
不加锁,都进入临界区,数据不一致 回滚
- 无锁(Lock-Free)
无障碍基础上要求 必然有一个线程能够在有限步内完成操作离开临界区 , compareAndSet
- 无等待(Wait-Free)
要求所有的线程都必须在有限步内完成 ,一种典型的无等待结构就是RCU(Read-Copy-Update),有点像svn解决冲突的方式
1,2 是阻塞,3,4,5是非阻塞,无锁用的更多