什麼是程式(執行緒)同步

lubxx發表於2020-10-01

本文是我對這個問題的個人理解,文中的“程式”也可以換成執行緒

  1. 如果只有一個程式,那麼程式同步指的是這個程式每次執行時的過程是一樣的。而現在的作業系統在多道程式設計的背景下,程式基本上是非同步的,即每次執行的過程都是不一樣的。但是結果可能是一樣的。

  2. 如果有兩個程式A和B(一般是協作關係),那麼程式同步的意思是說,兩個程式的執行過程是相互制約的。相反,非同步就是說兩個程式各走各的,不會考慮另一個程式的狀態。可想而知,兩個非同步執行的程式如果是協作關係,那麼很有可能出現不協調的情況(競爭條件的出現)。

  3. 兩個以上程式的同步與兩個程式的情況類似。

“互斥”只是為了實現程式同步而使用的一種手段。

相關文章