一、思维导图
二、详细说明
阻塞
当一个线程进入临界区(公共资源)之后,其他的线程必须等待这个线程执行完毕之后才能进入临界区。
无饥饿
线程排队,不管优先级大小,先来的先进入,这样就不会产生饥饿等待资源,即为公平锁,非公平锁就是,线程有优先级,优先级会影响线程的执行顺序,会导致饥饿锁额产生
无障碍
共享资源不加锁,每个线程都可以读写,线程进入后发现检测资源,如果发现资源被修改了,则回滚,重试该操作,直到这个操作成功。当多个线程同时读写,容易导致死循环。
无锁
无锁是无障碍的升级版,无锁保证了一个线程的有限步骤内可以成功退出,不管是否吸修改成功,这样就可以避免多个线程回滚导致死循环的问题。
无等待
无等待是无锁的升级版,并发编程的最高境界,无锁会导致优先级低的线程长时间不被执行,一直处于饥饿状态。无等待则要求所有线程在有限步骤内完成退出,让优先级比较低的线程有机会执行。从而让所有线程都有机会执行,提高并发度。