为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在java中sleep方法不会释放锁,但又说sleep会把执行权让给其他线程?

为什么在java中sleep方法不会释放锁,但又说sleep会把执行权让给其他线程?

青春有我 2022-05-18 19:15:14
java中sleep方法不会释放锁,但是又说sleep会把执行权让给其他线程,这不是前后矛盾吗?没释放锁其他线程就是拿到执行权不还是执行不了吗?有没有大神给指点下~
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

我不知道你所谓的锁指的是啥玩意.但是sleep的意思就是当前线程暂停了,这个你明白吧.所谓的执行权让给其他线程这么描述也不太好.因为一个线程的sleep是跟其他线程无关的.不影响其他线程执行.当然,sleep线程消耗cpu的运算高的话,sleep了,确实可以是别的线程执行的更流畅.也许这就是它"让"的意思.

查看完整回答
反对 回复 2022-05-23
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

这个两个操作并不矛盾,sleep不释放锁代表其他线程不会获取到当前线程所持有的所有的锁,但是如果有线程不依赖sleep线程所持有的锁,则线程有机会获得cpu的持行权

查看完整回答
反对 回复 2022-05-23
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

因为锁是对共享资源保护的一种手段,不释放锁 别的线程是拿不到资源的,但是别的线程不一定是拿这个资源啊,别的线程可以做其他的事啊

查看完整回答
反对 回复 2022-05-23
  • 3 回答
  • 0 关注
  • 673 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信