我是java noob,所以請原諒我對這個問題的無知。 我被指示在工作中更新一些代碼以使其線程安全。我被指出了需要改變的那些代碼。您會在下面找到我的問題。在抽象類定義中調用getClass()方法到底有什麼用 - 也與threadsafety有關?
有一個叫做抽象類:AbstractServiceProcessor 在這個抽象類有如下面的代碼片段顯示的getClass()的調用:
finally
{
synchronized (getClass())
{
progressMeter.mark(item.getChangeList().size());
dsTimer.stop();
}
}
1問:什麼是synchronized (getClass())
該怎麼辦?
第二個問題:我被指示將其更改爲synchronized (AbstractServiceProcessor.class)
這是怎麼回事?爲什麼我被指示改變這個?
非常感謝您的解釋。
從理解[synchronized_block是什麼](http://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html)和getClass()返回的內容開始。你也應該明白'.class'是什麼意思。 –
非常感謝Sotirios的快速響應。你能提供2美分嗎? –
你爲什麼不問那些要求你這樣做的人? –