我需要澄清關於javaron中同步關鍵字的工作原理。Java同步關鍵字 - 它是否保護類方法不被同時執行?
使用下面的示例類。現在
class Carrier {
private String[] _collection = new String[2];
public Carrier() {
this._collection[0] = "abc";
this._collection[1] = "123";
}
public syncronized void change(int cId) {
Thread.sleep(3000);
this._collection[cId] = "changed";
}
}
,在應用中的一些地方,它引用了運營商級的同一個對象實例中,.change()方法被調用時,有可能在同一時間。
...carrier.change(1);
...
...carrier.change(1);
請問syncronized關鍵字防止方法的asyncronized執行?它是否將呼叫排隊到.change(),等待每個人完成?
'它會簡單地排隊呼叫。變化()'。取決於你排隊的意思。執行順序沒有指定,所以它不是一個有序隊列,但是,其他線程將被迫等待。 – Kaj