死锁
死锁其实就是线程所占有的资源不释放,互相牵制,导致线程都不能运行,叫做死锁
活锁
活锁其实就是线程一需要资源AB他拥有A,线程二需要资源AB它拥有B‘
这时候他们都发现自己无法运行,于是都释放资源。释放了之后,线程一和二都发现有资源了,于是又各抢占了其中的一个,从而导致线程一和线程二都不能彻底运行。导致活锁,活锁比死锁麻烦的多
并发级别
阻塞
无障碍
无障碍是一种最弱的非阻塞调度
自由出入临界区
无竞争时,有限步内完成操作
有竞争时,回滚数据
无锁
是无障碍的,所有的线程都能进入临界区,但是不一定能让线程能够出来,无锁必须无障碍,但是增加了一个限制条件,就是在临界区中的所有线程,至少保证一个线程能够出去。这样不会让临界区中的线程死掉
无等待(基本是并行最高级别)
无锁的,要求所有线程都必须在有限步内完成,无饥饿的