StampedLock实现原理

  StampedLock的实现 基于CLH锁->一种自旋锁,保证没有饥饿发生,FIFO顺序【先进先出】 维护一个线程队列,申请不成功的记录在此,每个节点保存一个标记位【locked】,用来判断当前线程是否释放锁 当线程试图获取锁,取得当前队列的尾部节点作为其前序节点,并使用类似while(pred.locked){}判断前序节点是否已经成功释放锁 只要前序节点没有释放锁,则表示当前线程还不能继续
相关文章
相关标签/搜索