一、線程安全
(一)什么是線程安全問題
多個線程,同時操作同一個共享資源的時候,可能會出現業務安全的問題。
(二)用程序摹擬線程安全問題
二、線程同步
(一)同步思想概述
解決線程安全問題的方案,讓多個線程實現先后依次訪問共享資源,這樣就解決了安全問題。
(二)加鎖方案
加鎖:每次只允許一個線程加鎖,加鎖后才能進入訪問,訪問完畢后自動解鎖,然后其他線程才能再加鎖進來。有三種實現方案
1. 加鎖方式一:同步代碼塊
在實例方法中建議 this 作為同步鎖。
在靜態方法中建議 類名.class 作為同步鎖。
2. 加鎖方式二:同步方法
?
3. 加鎖方式三:Lock鎖
鎖創建在類里面,用鎖名調用lock或者unluck來加鎖和解鎖。整個加鎖解鎖要放在try catch finally里面,保證中間代碼如果出現bug,也能夠順利解鎖。