腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
如果同一个
线程
一次又一次地获取
锁
,那么ReentrantLock如何公平?
、
、
我是高级
Java
和学习
重入
锁
的新手。我理解ReentrantLock有一个公平的参数,它确保
锁
被分配给大多数饥饿的
线程
(与同步内部
锁
中的情况不同)。但是,可
重入
也意味着同一个
线程
可以通过增量holdCount一次又一次地重新获取
锁
。如果同一个
线程
永远获取
锁
,它如何保证公平性?
浏览 0
提问于2018-04-30
得票数 3
回答已采纳
6
回答
"ReentrantLock“在
Java
中的意思是什么?
、
可
重入
性意味着
锁
是在每个
线程
而不是每个调用的基础上获得的。 由于内部
锁
是由
线程
持有的,这是否意味着
线程
运行一次就等于调用基础?谢谢,这似乎意味着:在一个
线程
中,如果我在处理调用函数doB的函数doA时得到了一个
锁
lockA,而doB也需要一个
锁
lockA,那么就会有一个可
重入
性。在
Java
中,这种现象是按
线程
获取的,所以我不需要考虑死锁?
浏览 2
提问于2013-05-12
得票数 45
回答已采纳
2
回答
强制解锁可
重入
锁
、
、
、
、
我有一个可
重入
锁
,我将它包装在一个自定义的类中,以满足我自己的需求。但是,由于应用程序的性质,持有可
重入
锁
的
线程
会卡住(外部故障),并且无法释放可
重入
锁
。 我想知道是否有一种方法可以显式解锁可
重入
锁
?我知道可
重入
锁
的API没有这样的方法--然而,我正在考虑引入一个计时器任务,它将在一段时间后解锁可
重入
锁
,或者杀死持有可
重入
锁
的<
浏览 7
提问于2012-10-09
得票数 3
回答已采纳
3
回答
使用可
重入
锁在
java
中锁定同步
、
、
我有一个用
java
制作的应用程序,它使用了一个可
重入
的全局
锁
,我有一个类似这样的问题:为了让其他一些
线程
在短时间内获得
锁
,一个好的锁定策略或优化是什么?
浏览 1
提问于2013-12-06
得票数 0
2
回答
Java
中的可
重入
锁定
、
我当时正在研究
Java
中的可
重入
锁
。需要对这个概念进行某些澄清,即它实际上是如何工作的。b(); } some code;上面的代码有这个可
重入
锁
问题的场景我在这里所理解的是,假设我们有两个
线程
:在测试共享对象上执行应用程序中的T1和T2。 无论T1或T2获取a()和b()上的
锁
获取。让我们先说T1,然后执行一个()。而a()控
浏览 1
提问于2018-10-27
得票数 4
1
回答
公平可
重入
锁
C++
、
当一个
线程
比另一个
线程
做更多的工作时,我正在编写一个遭受饥饿的程序。关键部分由可
重入
的QMutex保护,这是不公平的。我以前做过一些研究,在boost中有shared_lock,但是我不需要读/写
锁
。只是一个
锁
,这将保证每个
线程
都有平等的机会进入关键部分。 非常感谢。
浏览 3
提问于2015-09-11
得票数 5
1
回答
为什么递归地获取(
重入
)
锁
?
、
、
、
ReentrantLock允许
线程
递归地获取相同的
锁
,以便在连续的
锁
/解锁时增加和减少
锁
计数。然而,在将
锁
计数释放到其他
线程
之前,必须将
锁
计数减为零。为什么或者在什么情况下,我要编写代码来递归地获取
锁
?对问题的澄清: 请
浏览 1
提问于2014-10-24
得票数 3
3
回答
Lock和RLock有什么区别?
、
、
、
来自 我不知道我们为什么需要这个?Rlock和Lock有什么区别?
浏览 9
提问于2014-04-05
得票数 105
回答已采纳
1
回答
同步重写方法:内部
锁
获取父类和子类的顺序
、
、
在重写的非静态同步方法中持有哪些
锁
。请提供获取和释放基类和子类监视器
锁
的顺序,以便解释可
重入
性在
java
中的好处。如果能够通过拥有JVM维护的
线程
和获取计数来实现可
重入
性来解释这些序列,那就太好了。public synchronized void doSomething() { }请注意,这个问题是专门要求解释隐式
重入
锁
浏览 0
提问于2014-05-26
得票数 1
回答已采纳
1
回答
可
重入
锁
是对象级
锁
还是类级
锁
?
、
、
我在许多关于可
重入
锁
的教程中看到,它们创建一个新的可
重入
锁
,并注入资源,在try/finally块中调用可
重入
锁
的
锁
和解锁。我不明白这个
锁
和
线程
中使用的资源之间的连接。下面是关于
重入
锁
的教程示例public class Resource { //do some operation
浏览 3
提问于2022-05-23
得票数 -1
回答已采纳
2
回答
可
重入
锁
-
Java
在实践中的并发性
、
、
、
以下是来自“
Java
并发性实践”的可
重入
锁定的一些示例代码:public synchronized void doSomething() { 可
重入
性简化了锁定行为的封装,从而简化了面向对象并发代码的开发.如
浏览 2
提问于2015-01-12
得票数 5
回答已采纳
2
回答
在本代码示例中,
Java
中的可
重入
性帮助我们避免了死锁的情况。怎么,为什么?
、
、
我对
Java
和OOP很陌生。我正在阅读
java
中的并发性,在第2章中,它谈到了可
重入
性。我不太明白僵局是怎么发生的。有人能打破这种情况,让我一条条地了解细节吗? 提前谢谢你。如果内部
锁
不是可
重入
的,那么对super.doSomething的调用将永远无法获得
锁
,因为它将被视为已持有,并且
线程
将永久停止等待它永远无法获得的
锁
。System.out.println(toString() + ": calling doSomething"
浏览 1
提问于2014-02-03
得票数 1
回答已采纳
2
回答
下面的代码会成功执行吗?
、
、
、
在Brian Goetz的
Java
并发性实践中,下面的示例解释了
Java
中
锁
的
重入
性: public synchronized void doSomething{ super.doSomething();} 它说,由于
Java
中
锁
的
重入
性,上述代码不会导致死锁,因
浏览 1
提问于2018-09-12
得票数 3
回答已采纳
2
回答
线程
、
锁
和条件的状态
、
、
、
、
在
Java
中,如果一个
线程
t2试图从同步(目前由另一个
线程
t1使用)获得
锁
,那么t2将从runnable切换到阻塞。对,是这样?那ReentrantLock呢?如果
线程
t1使用
锁
完成,那么t2会自动切换回runnable,还是需要使用notifyAll()?在没有条件的情况下使用ReentrantLock会怎么样?如果没有使用条件,如何通知
线程
t2它应该切换回可运行状态?在没有条件的情况下使用
重入
锁
是明智的,甚至是可能的吗? 如果这个
浏览 1
提问于2017-01-03
得票数 2
回答已采纳
1
回答
可
重入
锁
能与同步块一起工作吗?
、
、
、
、
我在
Java
应用程序中有一个数据传输对象(DTO),它是从多个不同的
线程
跨应用程序读取和写入的。到目前为止,我已经能够使用synchronized(dto.class)进行同步。现在有一个实例需要将
锁
保存在调用它的方法之外,因此我将使用ReentrantLock()类。 是否有一种
线程
安全的方法在一个实例中使用可
重入
锁
来实现其功能,同时保持同步块与代码的其余部分相同?或者,是否使用
重入
锁
意味着所有相关的同步块都必须删除?
浏览 2
提问于2022-10-10
得票数 0
5
回答
是否在同一对象上同步两次?
、
、
、
我想知道在
Java
中,如果我在同一个对象上同步两次,会不会有什么奇怪的行为?我不这么认为,因为这是相同的
线程
,但我不确定可能出现的任何其他奇怪的结果。
浏览 3
提问于2008-10-30
得票数 57
回答已采纳
3
回答
Java
对象锁定:调用其他方法时发生死锁?
、
、
、
如果我在两个方法中使用synchronize(this),其中一个调用另一个方法,我是否会陷入死锁的情况,或者它会因为
线程
已经拥有
锁
而工作吗?当调用foo()时,将在(This)上获得
锁
;当被foo调用时,bar是否会尝试执行相同的操作(从而导致死锁),或者它是否会意识到
锁
已经被同一
线程
获得? 希望我的解释或多或少清晰;-)
浏览 1
提问于2012-06-26
得票数 4
回答已采纳
1
回答
如果
Java
线程
已经占用了
锁
,为什么还要重新进入
锁
中呢?
、
、
、
我在读有关
Java
线程
和可
重入
锁
的文章。ReentrantLock允许
线程
多次进入对资源的锁定。我的问题是,如果
线程
已经锁定了资源,为什么它必须这样做?这种“再入”的目的是什么?
浏览 7
提问于2019-09-15
得票数 0
4
回答
Java
线程
是否可以在已持有
锁
的同时获取
锁
?
、
、
如果
线程
持有
锁
,那么当
线程
需要进入由同一
锁
控制的另一个关键部分时,会发生什么?
浏览 9
提问于2010-04-24
得票数 4
回答已采纳
2
回答
从已同步方法的中调用已同步方法,两者都属于同一对象
、
为什么下面的代码不会导致死锁?我的意思是在我调用getNumber(.)类测试的对象应该是锁定的,所以我应该不能访问getNumber2(.)。 synchronized int getNumber(int i){ } return i; System.out.printl
浏览 0
提问于2013-03-04
得票数 5
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Java 线程锁技术
java多线程编程——锁优化
Java多线程并发之读写锁
Java编程学习多线程—锁优化
Java并发编程:自己动手写一把可重入锁
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
即时通信 IM
活动推荐
运营活动
广告
关闭
领券