gpt4 book ai didi

java - 多线程和持久性最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:00 24 4
gpt4 key购买 nike

我有多个线程(大约 40 个)为 java 应用程序中的数百个用户访问持久变量(字符串和长整数)。存储这些变量的最佳方式是什么?变量的读取和写入随时可能发生,我不仅希望最大限度地减少 CPU 负载,而且还希望在变量因为正在写入而不可用时减少影响。

我正在考虑为每个用户创建一个文件,将该用户的所有变量转换成一个字符串,然后在我需要变量时写入或读取该文件。

...或为每个用户(键)创建一个 HashMap 并根据需要添加变量(值)。

是否有一种线程安全的方法来执行此操作,以确保无论何时线程请求一个变量,我都可以确保它获得正确的值?

谢谢。

最佳答案

您知道,我要冒昧地说使用 ConcurrentHashMap。这是最好的方法之一,可以最大程度地减少与大量并发信息的争用,除非有 Disruptor。由于您无论如何都在考虑 HashMap,因此这里的好处是发生的锁定仅限于单个散列行——散列到不同区域的两个项目不会相互阻塞。

关于java - 多线程和持久性最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848892/

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