1. 程式人生 > 其它 >【協議時序】- SPI-READ讀操作-實驗

【協議時序】- SPI-READ讀操作-實驗

關於執行緒同步:

假設有1個英雄攻擊蓋倫且每次hp-1,可是蓋倫自身也在每秒回1hp,攻擊和回血兩個執行緒同時執行,執行緒結束後蓋倫的血量因還是10000,但是

分析原因:

在回血執行緒執行完時,hp=10001,但加血執行緒還未執行完時,減血執行緒又開始執行了,所以當加血執行緒執行完時hp=10001才對,可因為減血執行緒的加入導致hp=9999,此問題在業務上叫做髒資料。

 

解決方法:

在加血執行緒執行期間,減血執行緒對hp的值的訪問不被允許

在加血執行緒執行完成之後,才可被訪問;

 

 

synchronized物件又叫做同步物件

synchronized表示當前執行緒佔用著someobject

在佔用期間其他執行緒不可佔用someobject,直到執行緒

執行完畢並被釋放。

結束方式:程式碼塊自然結束或者有異常丟擲。

2、同步物件也可以換成其他物件

this表示當前同步的物件,也就是gailun

3、直接在方法前加上修飾符

這與2達成的效果一樣

如果一個類的方法中有用synchronized修飾的話,那麼此類

叫做執行緒安全的類。