上同步我寫一些這樣的代碼:的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