阻塞或者唤醒一个 Java 线程是需要操作系统切换到内核态来完成的,这 常情况下锁获取失败就应该阻塞入队,但是有时候可能刚一阻塞,别的线程就释放锁了 do-while 循环。更底层来说自旋操作就是空转 CPU,执行一些无意义的指令,目的就是不让出 CPU 等待锁的释放 不放弃处理器的执行时间 自旋锁的实现原理是 CAS” Java 中的 synchronized 有偏向锁、轻量级锁、重量级锁,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。
点赞 评论

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务