HashSet<>IPs=新哈希集<>();
我将有多个线程访问和修改它。添加volatile一词是否足以防止腐败?关于如何防止线程访问冲突的基本解释将帮助我更好地理解这些我不太清楚的关键字。
volatile
仅使变量本身具有线程安全性。这意味着分配新值或读取变量是线程安全的,而不是对存储在变量中的对象进行方法调用。Collections.synchronizedSet(Set set)
可能需要您的需求。
HashSet<String> names = new HashSet<>();
Set<String> threadSafe = Collections.synchronizedSet(names);
您应该了解一下java.util.concurrent
包。并发集合的性能非常好。特别是CCD_ 4和CCD_。