多線程操作共享資源

共享資源:

一塊資源可能會被多個線程共享,也就是多個線程可能會訪問同一塊資源。

比如多個線程訪問容一個對象,同一個變量,同一個文件。

當多個線程訪問同一塊資源時,很容易引發(fā)數(shù)據錯亂和數(shù)據安全問題

分析

問題所在:把讀寫的問題給分開了,導致了數(shù)據的錯亂。讀寫綁定在一起,形成一個原子。一旦一個線程在執(zhí)行這個變量讀寫過程時,其他線程不允許操作。


讀寫鎖定

//注釋:

1.任意一個對象內部都有一把鎖。加把鎖可以解決讀寫問題。

2.@synchronized為互斥鎖,線程同步,按順序執(zhí)行。一個線程如果在執(zhí)行鎖中的內容,另一個線程只能等待。

3.互斥鎖默認是打開的。

4.注意這個鎖所屬的對象必須是全局變量才會有效。如果是局部變量,那么每次過來這個鎖都是開著的,就起不到鎖的效果。

5.代碼鎖的越少越好,這樣性能會越高。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容