1. 程式人生 > 其它 >執行緒同步程式碼塊和同步方法的使用

執行緒同步程式碼塊和同步方法的使用

方法一:執行緒同步程式碼塊

作用

解決執行緒共享同操作的資料的安全性。(執行緒安全)

語法

synchronized(同步監視器){

// 需要被同步的程式碼

}

說明

1.操作共享資料的程式碼,即為需要被同步的程式碼。—>不能包含程式碼多了,也不能包含程式碼少了。

2.共享資料:多個執行緒共同操作的變數。比如:車站賣的票的數量就是共享資料。

3.同步監視器,俗稱:鎖,任何一個類的物件,都可以充當鎖。

補充

--要求:多個執行緒必須要共用同一把鎖。

--在實現Runnable介面建立多執行緒的方式中,我們可以考慮使用this充當同步監視器。

方法二:執行緒同步方法

如果操作共享資料的程式碼完整的宣告在一個方法中,我們不妨將此方法宣告同步的。

@Override

public void run(){

show();

}

private synchronized void show(){ //同步監視器:this

// 需要被同步的程式碼

}

private static synchronized void show(){ //同步監視器:windows.class

// 需要被同步的程式碼

}

總結:

1.同步方法仍然涉及到同步監視器,知識不需要我們顯示宣告。

2.非靜態的同步方法,同步監視器是:this ;靜態的同步方法,同步監視器是:當前類本身。