gpt4 book ai didi

java - 同步对象设置为空

转载 作者:IT老高 更新时间:2023-10-28 21:22:08 25 4
gpt4 key购买 nike

我有两个线程 Thread1Thread2

//Within Thread1     
synchronized(obj1)
{
obj1 = null;
}

//Within Thread2
synchronized(obj1)
{
do something
}

如果 jvm 首先执行 thread1 并将 obj1 设置为 null,那么 thread2 会立即看到该更改还是需要一些时间,并且 jvm 仍然可以运行 thread2 同步块(synchronized block),因为 obj1 尚未为 null?

最佳答案

这几乎肯定会破坏同步抽象——我不相信 thread2 会立即看到更改。您永远不应该更改您正在同步的对象的引用,更不用说将其设置为 null,这将在任何进一步尝试对其进行同步时导致 NullPointerException

关于java - 同步对象设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195054/

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