在下面兩個同步策略中,哪一個被優化(如在處理和生成的字節碼中)以及應該使用其中之一的場景。哪個更有效率?爲什麼?
public synchronized void addName(String name)
{
lastName = name;
nameCount++;
nameList.add(name);
}
或
public void addName(String name) {
synchronized(this) {
lastName = name;
nameCount++;
nameList.add(name);
}
}
還什麼是advisiable方式處理併發:使用利用使用Job
或UIJob
API上述低電平方法
java.util.concurrent
包- (如果在eclipse P中工作DE環境)
感謝
問題標題不清楚(什麼更有效?)。 – Guillaume 2010-11-10 17:10:01
這段代碼的目的是什麼?它是真實的代碼還是隻是一個例子?例如不是nameCount相同nameList.size()?並不是lastName只是nameList中的最後一個元素? nameList用於什麼?用一個簡單的鏈表結構替換整個事物似乎很容易,我可以自動CAS並且完全不需要同步 – 2010-11-11 01:08:58
@Jed Wesley:這只是一個例子來理解上述方法之間的區別(根據性能,用例和字節碼生成)。 – Favonius 2010-11-11 05:30:02