- synchronized 關鍵字是JAVA中內建的語言級同步原語,可以通過使用這個關鍵字實現多執行緒間存取之間的同步。synchronized 關鍵字可以作為函數的修飾符,也可以直接在函數語句中使用,也就是平時說的同步方法和同步語句。從作用域上來看,它可以分為作用於某個範例物件內和某個類的範圍內。也可以實現在類的範圍內的某個方法的同步,或是讓一個類的所有物件都在某個程式碼塊的使用上同步:
public synchronized static void test(){
}
public class Tester{
public void test(){
synchronized(Tester.class){
}
}
}
- 此時的物件鎖是Tester類的所有物件,即假設Tester t1,Tester t2兩個物件,當一個執行緒在執行完t1的同步語句之前,另一個執行緒也不能執行t2的同步語句。