我怎样才能创建一个线程安全的字典

时间:2011-04-08 20:42:06

标签: multithreading

我有一本字典,我想让它变成静态的。假设我有一个有一些数据的字典。如果我同时通过两个进程访问这个字典,那么我的数据不匹配。我该如何解决这个问题。

例如在字典中,我有密钥A值1 2 3 4 5                                           关键B值6 7 8 9 10

当我通过两个进程访问这个字典时,一个读取A的数据,另一个读取B的数据。然后我有结果集,其中B包含A值。

2 个答案:

答案 0 :(得分:0)

如果您的程序是用Java编写的,则需要同步任何检索和设置值的方法。

例如:

public synchronized int getValue() {
    return value;
}

'synchronized'关键字确保两个进程不会同时读取或设置数据。

这是通过JVM获取对象的锁定来实现的,只允许一个线程一次访问它。然后执行代码,一旦完成锁定就被释放。如果另一个线程正在等待,则该线程可以获取对象的锁定。

答案 1 :(得分:0)

如果您的程序是用.NET编写的,那么您可以查看有关the best way of implementing a thread-safe Dictionary的相关问题,链接和C#示例代码......