44. 舉例說明 sychronized 修飾符應用的場景

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

  1. 此時的物件鎖是Tester類的所有物件,即假設Tester t1,Tester t2兩個物件,當一個執行緒在執行完t1的同步語句之前,另一個執行緒也不能執行t2的同步語句。