CLH(Craig, Landin, and Hagersten locks)机制
CLH(Craig, Landin, and Hagersten locks):是一个自旋锁,能确保无饥饿性,提供先来先服务的公平性。CLH锁也是一种基于链表的可扩展、高性能、公平的自旋锁,申请线程只在本地变量上自旋,它不断轮询前驱的状态,如果发现前驱释放了锁就结束自旋。AQS就是基于CLH队列,AQS是将每一条请求共享资源的线程封装成一个CLH锁队列的一个结点(Node),来实现锁的分配。当一个线程需要获取锁时:1 创建一个的QNode,将其中的locked设置为true表示需要获取锁
原创
2021-01-30 19:02:20 ·
4452 阅读 ·
1 评论