gpt4 book ai didi

java - 同步(this)和同步(Thread.currentThread())之间的区别

转载 作者:行者123 更新时间:2023-11-30 08:09:31 24 4
gpt4 key购买 nike

这不是家庭作业,这些是一些概念性查询。

  1. synchronized(this) 和有什么区别?和synchronized(Thread.currentThread())

  2. 锁定Thread有什么用处或优势吗?实例?(除了调用 wait()notify()notifyAll() 等方法)?

  3. 还有,有没有什么情况synchronized(Thread.currentThread())可以派上用场吗? (除了调用 wait()notify()notifyAll() 等方法)?

最佳答案

您选择同步的对象仅与想要获取锁定以保护特定操作的代码段相关。因此,主要的功能考虑是确保这些代码片段可以引用该对象。

从功能上来说,无论是在 Thread.currentThread() 还是 new Object() 上同步并不重要,只要使用该锁的代码片段一致即 cocoa 以访问该对象(请记住,Thread.currentThread() 在不同线程上运行时将返回不同的对象,这使得用于锁定变得非常尴尬)。

但是,您应该谨慎选择要同步的对象,以减少出现错误的可能性。最好的方案是,只有需要为特定操作锁定对象的代码可以访问锁定对象(因此其他代码不会为可能干扰的其他锁定方案共享它。)

关于java - 同步(this)和同步(Thread.currentThread())之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30592280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com