自旋锁 是相当于一个线程在读取值的时候,如果锁已经被其他线程度获取,那么线程将循环等待,然后不断的判断锁是否能够被成功获取,自旋到或许锁才会退出循环。 自旋锁存在的意义与试用场景 阻塞与唤醒线程需要操作系统切换cup状态,需要消耗一段时间同步代码块逻辑简单,执行时间很短 自旋是为了避免线程的阻塞和唤醒。 自适应自旋锁 自适应自旋锁会在上一个自旋线程自旋的次数的基础上进行合适的调试,jdk有默认的自旋次数限制如果超过或者临近,会认为我拿到值运行的可能性会越来越小,会报出异常或者将线程挂起。