天天看點

多線程之間的同步控制

問題:

同時運作的幾個線程需要共享一個資料,并且要考慮到彼此的狀态和動作。

例如,當一個線程對共享的資料進行操作時,在沒有完成相關操作之前,不允許其他線程打斷它,否則會破壞資料的完整性。也就是說,被多個線程共享的資料在同一時刻隻允許一個線程處于操作之中。

實作原理:

    為了保證線程安全,使用“鎖旗标”;

當線程A獲得了一個對象的鎖旗标後,線程B若也想獲得該對象的鎖旗标,就必須等待線程A完成規定的操作并釋放出鎖旗标後,才能獲得該對象的鎖旗标,并執行線程B中的操作。

代碼實作:

       一個對象的鎖旗标隻有一個,是以利用對一個對象鎖旗标的争奪,可以實作不同線程的互斥效果。當一個線程獲得鎖旗标後,需要改鎖旗标的其他線程隻能處于等待狀态。

      另外, 也可以将此關鍵字加在方法上:

繼續閱讀