2011-04-08 71 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获取对象上的锁来实现的,一次只允许一个线程访问它。然后代码被执行,一旦完成,锁定被释放。如果另一个线程正在等待,则此线程可以获取对象的锁定。