2023-07-22 15:07
哈尔滨剑桥学院 Java 鼠鼠很焦虑:公平锁,每次判断state为0时不能立即抢占,而是判断是否还有前置结点,也就是判断首节点后面是否还有结点排队等候,如果有通过cas入队。
非公平锁,新线程来了,不管有没有其他结点在排队先cas抢占,如果两次强锁失败,那么就进入到队列中,其实这和公平锁一样啦,需要排队。当没有新的线程抢占时,强锁也是按照队列先后顺序来抢的,类似公平锁。
非公平锁和公平锁 最大的区别就是新来的线程是不是插队抢占,如果它没抢到那后面就是老老实实排队,后面唤醒也要等前面的结点出队了才能唤醒,而且入队的结点可能存在饥饿。
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
2023-04-04 16:04
哈尔滨剑桥学院 Java 0 点赞 评论 收藏
分享
关注他的用户也关注了: