1. 程式人生 > >java執行緒同步方法

java執行緒同步方法

1.同步方法

    synchronized修飾方法,物件內建鎖保護整個方法(物件鎖)

    若方法static修飾,類鎖

2.同步程式碼塊

    同步—高開銷—減少同步內容

3.wait和notify

    wait:執行緒處於等待,釋放鎖

    sleep:執行緒睡眠,不釋放鎖

    notify:隨機喚醒某個處於等待的執行緒

    notifyall:喚醒所有等待執行緒

4.volatile—可見性,禁止指令重排序

5.重入鎖(ReentrantLock)

    執行緒可以進入一個它已經擁有鎖所同步的程式碼塊

    lock() and unlock()

6.區域性變數(ThreadLocal類)— 空間換時間

    每個執行緒可以獲得某變數的副本,並相互獨立

    不同執行緒只能get,set,remove自己的變數,不影響其他執行緒

7.阻塞佇列 — java.util.concurrent(JUC)

    ArrayBlockingQueue、LinkedBlockQueue、PriorityBlockingQueue