2009-08-05 27 views
-2

原子的方式如何使我們的代碼線程安全?原子方式有哪些用途?

+1

你可能想澄清你的問題有點......「原子方式」不是非常具體或清晰。 – 2009-08-05 15:33:10

+0

這是一個非常大的和難以理解的問題。什麼是「原子方式」?也許你的意思是原子方法?或同步方法? – 2009-08-05 18:51:12

回答

1

原子操作是根本無法中斷的操作。

典型的同步問題發生在一個線程更新不受同步機制保護的數據結構時,因此線程可以讀取過時或不一致的值,因爲值正在被其他線程從腳下改變。

避免此問題的機制是同步對數據結構的訪問,因此您需要下訂單並確保單個線程在其他線程訪問數據結構之前完成對數據結構的使用。

這些能夠工作的同步機制必須確保它們本身不能在CPU運行時從CPU調度出來,因爲如果發生這種情況,那麼線程可能會在不應該更新結構時更新結構。

這些機制是根據這些原子操作來實現的,以確保它們的工作。例如,semaphores依賴於具有原子增量和'測試和減量'運算符。

這是一個很大的主題,通常在主題「分佈式系統」下討論,這個術語可能會引導您獲得更好的資源來理解併發性。

相關問題