更新時間:12/25/2018
前言
在前篇 執行緒(1) 初次介紹了執行緒,並提出執行緒的競速情況(Race Condition)。在此篇文章會介紹簡單、靈活地操作執行緒,至於更深入的控制執行緒的剖析,將不在此篇討論。
在執行緒中的"鎖"提供了兩種主要特性:互斥(mutual exclusion)和可見性(visibility)。
互斥即一次只允許一個執行緒持有某個特定的鎖,因此可使用該特性實作對共享數據的協調訪問協議,這樣,一次就只有一個執行緒能夠使用該共享數據。
可見性要更加複雜一些,它必須確保釋放鎖之前對共享數據做出更改,對於隨後獲得該鎖的另一個執行緒是可見的。如果沒有同步機制提供的這種可見性保證,執行緒看到的共享變數可能是修改前的值或不一致的值,這將引發許多嚴重問題。