天天看點

并發知識點

基本上所有的并發模式在解決線程沖突的問題時,都是采用序列化通路共享資源的方案。這意味着在一個特定的時刻隻允許一個任務來通路共享資源。通常時通過在代碼前加上一條鎖定語句來實作,這樣在給定的一段時間内隻可以有一個任務運作這段代碼。因為鎖語句産生了一種互斥的效果,這種機制也便常常被稱為互斥量(mutex)

鎖也稱為螢幕

當一個域的值依賴于他之前的值時,(例如計數器),volatile失效,如果某個域受到其他域的值的限制,那麼volatile也失效.

使用volatile而非synchronize的唯一安全的情況是類中隻有一個可變的域,使用synchronize是第一選擇,其他皆有風險

如果一個域可能會被多個任務同時通路,或者這些任務至少有一個是寫任務,就該把這個域設為volatile,告訴IDE不執行任何移除讀寫操作的優化