Pet*_*end 5 java synchronization
我遇到了一些(生产!)代码,看起来像下面的代码片段:
synchronized(some_object) {
some_object = new some_object()
}
Run Code Online (Sandbox Code Playgroud)
我希望这会受到各种可怕的竞争条件的影响,并且第二个线程可能会进入此块,创建一个新对象.我的Java排骨不够好,无法明确说明上面的预期行为,所以好奇你们重构之前你们要说的话.
正如弗朗西斯所说,这可能不是问题。您的代码片段相当于:
SomeObject saved = some_object;
synchronized(saved) {
some_object = new SomeObject()
}
Run Code Online (Sandbox Code Playgroud)