原理:如果持有锁的线程可以在很短的时间内释放锁资源的话,那么等待竞争锁的线程就不需要进入阻塞挂起的状态,只需要循环等待锁的释放后立即获取锁即可,不会释放 CPU,避免线程的切换造成的消耗。
缺点:通过让线程执行循环等待锁的释放,不让出 CPU 的话,如果锁被其他线程长时间占用,会带来许多性能上的开销。
原理:如果持有锁的线程可以在很短的时间内释放锁资源的话,那么等待竞争锁的线程就不需要进入阻塞挂起的状态,只需要循环等待锁的释放后立即获取锁即可,不会释放 CPU,避免线程的切换造成的消耗。
缺点:通过让线程执行循环等待锁的释放,不让出 CPU 的话,如果锁被其他线程长时间占用,会带来许多性能上的开销。