PEE*_*ELY 0 java synchronization
这是我曾经看过的一些代码.你能看出它有什么问题吗?
[更新]
public class ResourceManager1
{
private final String mutex = "";
Object resource = null;
public Object getResource()
{
synchronized (mutex)
{
if (resource == null)
{
resource = new Object();
}
}
return resource;
}
}
public class ResourceManager2
{
private final String mutex = "";
Object resource = null;
public Object getResource()
{
synchronized (mutex)
{
if (resource == null)
{
resource = new Object();
}
}
return resource;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 12
永远不要在字符串上同步,特别是实习的字符串文字.你基本上只有一把锁.
一般情况下,除非外部可见性的目的正是出于锁定目的,否则永远不要在类外可见的任何引用(包括"this")上进行同步.我通常使用private final仅为锁定目的而创建的变量.
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |