博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReentrantLock(可重入锁)
阅读量:3927 次
发布时间:2019-05-23

本文共 192 字,大约阅读时间需要 1 分钟。

在这里插入图片描述

有t1,t2,t3,t4四个线程争抢锁,首先要判断count是不是为0,如果为0就会同时对count进行操作,所以只会有一个线程会成功,假设是t3线程成功,那么其他线程就会进入waiters等待,并且owner会指向t3。

当t3线程释放锁,count变为0,owner被清空,那么t1就会尝试去修改count。

在这里插入图片描述
由上图中源码可见,ReentrantLock可以自己设置是否为公平锁

转载地址:http://zqugn.baihongyu.com/

你可能感兴趣的文章
Volatile-1.保证可见性
查看>>
Volatile-2.不保证原子性
查看>>
剑指 Offer 25. 合并两个排序的链表
查看>>
剑指 Offer 26. 树的子结构
查看>>
剑指 Offer 27. 二叉树的镜像
查看>>
剑指 Offer 29. 顺时针打印矩阵
查看>>
剑指 Offer 31. 栈的压入、弹出序列
查看>>
剑指 Offer 32 - III. 从上到下打印二叉树 III
查看>>
剑指 Offer 33. 二叉搜索树的后序遍历序列
查看>>
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
查看>>
剑指 Offer 68 - II. 二叉树的最近公共祖先
查看>>
剑指 Offer 18. 删除链表的节点
查看>>
剑指 Offer 32 - II. 从上到下打印二叉树 II
查看>>
杭电oj-2011 多项式求和 C++
查看>>
杭电oj-2014 青年歌手大奖赛_评委会打分 C++
查看>>
杭电oj-2015 偶数求和 C++
查看>>
杭电oj-2016 数据的交换输出 C++
查看>>
杭电oj-2017 字符串统计 C++
查看>>
杭电oj-2018 母牛的故事 C++
查看>>
Educational Codeforces Round 87 (Rated for Div. 2)----题目+题解(A、B)
查看>>