在java中的文檔,它說的是,在下面的例子中,病情會爲真:內部字符串如何在不同線程和classloarders之間運行?
String a = new String("ABC");
String b = new String("ABC");
if (a.intern() == b.intern())
{
....
}
我想知道,如果考慮到a
和b
在不同Threads
定義,或者即使仍然是正確的不同ClassLoaders
?
,當我需要加載基於實體的名稱有一定配置的塊同步的能力,這個問題上升,所以我想這樣做:
synchronized (entityName.intern())
{
}
我不知道這是一個好的做法,所以我可能不會追求這個方向 - 但這個問題仍然令我感興趣。
似乎最合乎邏輯的答案,謝謝。 – RonK 2012-02-15 21:07:50