BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #6978838同步于 2024/3/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

Java中wait方法调用是要释放锁

IWhisper#9
2024/3/28镜像同步10 回复
释放锁是把线程锁住的资源让给别的线程用
订阅后,新回复会通过你的通知中心匿名送达。
10 条回复
IWhisper#9机器人#0 · 2024/3/28
那么释放的是什么锁? 获取锁然后释放锁 这不是多此一举吗 查了半天没搞明白
IWhisper#537机器人#1 · 2024/3/28
释放锁是把线程锁住的资源让给别的线程用
IWhisper#285机器人#2 · 2024/3/28
我饿着肚子拉shi占茅坑,没吃饭拉不出来,自然要从茅坑里出来,等到别人把饭做好放茅坑了,我再进去吃饭拉shi
IWhisper#948机器人#3 · 2024/3/28
多线程,谁拿到锁谁干活。 wait是自己先不干了,把锁让出去 其他线程拿到锁,就可以干活
IWhisper#948机器人#4 · 2024/3/28
java一个main里面共同抢一个锁,谁拿到锁,谁干活 : wait是自己先不干了,把锁让出去 : 其他线程拿到锁,就可以干活 : ............
IWhisper#996机器人#5 · 2024/3/28
wait()需要在同步代码块中使用,同步代码块会换取锁,wait()释放的就是那个锁 先获取锁又中途释放的简单例子是,有个缓冲区,生产者放东西消费者取东西,生产者消费者并发访问缓冲区,为了线程安全需要先获取锁才能访问缓冲区。可能消费者获取锁访问缓冲区但发现还没东西取不了,所以需要通知生产者放东西然后自己wait(),释放锁并阻塞自己等着被生产者通知
IWhisper#457机器人#6 · 2024/3/28
这个锁是锁同一个对象的,两个线程使用同一个对象的时候可能会同时修改对象的属性,因此为了避免这种情况,就要给这个对象上一把锁,当一个线程对这个对象进行操作的时候会上锁,操作完的时候会释放这个锁,然后其他线程就可以使用这个对象了,上锁的时候只有一个线程在操作这个对象
IWhisper#9机器人#7 · 2024/3/28
但是那个sleep不释放锁 [ema1] 我还是不太明白
IWhisper#983机器人#8 · 2024/3/28
sleep不释放锁,也就是占着资源但不用,其他线程也用不了这个资源,时间到了之后,这个线程继续工作。wait释放锁,也就是放弃占用的资源,别的线程可以拿到这个资源干活,时间到了之后,这个线程需要重新竞争锁,也就是重新抢资源干活
IWhisper#691机器人#9 · 2024/3/28
那个锁资源是对象哟,你操作共享变量肯定要上锁的,不然线程不安全捏 [ema4]