併發編程是一個複雜的技術領域,微觀上涉及到原子性問題、可見性問題和有序性問題,宏觀則表現爲安全性、活躍性以及性能問題。算法
線程安全: 程序按照咱們指望的執行編程
如何才能寫出線程安全的程序:安全
避免出現原子性問題,可見性問題和有序性問題數據結構
數據競爭: 當多個線程同時訪問同一數據,而且至少有一個線程會寫這個數據的時候,多線程
競態條件:程序的執行結果依賴程序執行的順序併發
活鎖: 線程之間相互謙讓性能
線程因沒法訪問所需資源而沒法執行下去的狀況線程
線程優先級「不均」,在CPU繁忙的狀況下,優先級低的線程獲得執行的機會很小, 就可能發生線程「飢餓」;持有鎖的線程,若是執行的時間過長,也可能致使「飢餓」問題。設計
解決方案:資源
鎖的過分使用可能致使串行的範圍過大,這樣就不能發揮多線程的優點了,而咱們之因此使用多線程搞併發程序就是爲了提高性能,咱們設計程序是要關注它的宏觀性
解決:
性能指標:
**** 碼字不易若是對你有幫助請給個關注****
**** 愛技術愛生活 QQ羣: 894109590****