上同步我写一些这样的代码:的Java:String对象
public static void function7() {
String str = "123";
String str2 = "123";
synchronized (str) {
if(str != null) {
str2 = "123";
}else{
str = "456";
}
System.out.println(str2);
}
}
的代码编译好。 但是Eclipse的插件,发现漏洞,给后续的错误报告:
常量字符串拘禁和跨由JVM加载的所有其他类共享。因此,这可能会锁定其他代码也可能锁定的内容。这可能会导致非常奇怪和难以诊断阻塞和死锁行为。
究竟是什么意思?
另请参见[在Java中同步字符串对象](https://stackoverflow.com/questions/133988/synchronizing-on-string-objects-in-java)。 – Vadzim