2011-04-08 53 views
0

我有一本字典,我想讓它變成靜態字典。假設我有一個有一些數據的字典。如果我通過兩個進程同時訪問這個字典,那麼我的數據不匹配。我怎麼解決這個問題。如何製作線程安全字典

例如在字典我有鍵A-值1 2 3 4 5 鍵B-值6 7 8 9 10

當我被兩個過程的一個訪問該字典A等讀取數據讀取B的數據。然後我得到結果集,其中B包含A值。

+2

而啓動的「如果你的程序是用絡繹不絕。 ..「的答案,你爲什麼不告訴我們你正在編寫哪種編程語言? – thkala 2011-04-08 21:16:35

+0

...並且記住在將來的問題中也要說! – 2011-04-08 21:34:15

回答

0

如果您的程序是用Java編寫的,則需要同步任何檢索和設置值的方法。

例如:

public synchronized int getValue() { 
    return value; 
} 

在「同步」關鍵字確保兩個進程不讀取或設置數據同時進行。

這是通過JVM獲取對象上的鎖來實現的,一次只允許一個線程訪問它。然後代碼被執行,一旦完成,鎖定被釋放。如果另一個線程正在等待,則此線程可以獲取對象的鎖定。