gpt4 book ai didi

java - 在并行测试执行中将Hashmap用作线程安全的

转载 作者:行者123 更新时间:2023-12-03 12:51:35 28 4
gpt4 key购买 nike

我有一个用于生成随机值并将这些随机值放入hashmap的类。但是我已经将测试套件配置为能够执行paralley。因此,我已将constroctor声明为private,以确保此哈希表具有线程安全性。这种机制正确吗?如果不正确,我该如何实现?

public  class RandomData{
private static Hashmap map = new Hashmap();

private RandomData(){}

public String getRandomVal(){

/* generate random value and put the map, if this generated
value is not existing in the map, it will return or else
a new value is generated again and return. */
}
}

最佳答案

您只有一个HashMap实例,该实例在RandomData的所有实例之间共享。如果多个线程尝试并发更新(通过调用getRandomVal),则可能会出现未定义的行为,因为HashMap并非线程安全的。您可以通过使用Map的线程安全实现(例如 ConcurrentHashMap )来解决此问题。

关于java - 在并行测试执行中将Hashmap用作线程安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60669267/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com