gpt4 book ai didi

multithreading - 如何创建可以在 O(1) 中更新(删除/创建/更新)项目并保证线程安全的数据结构?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:42:17 27 4
gpt4 key购买 nike

我有一些客户端应用程序每 3 秒获取一次包含 1000 项的通信数据。每个项目包含 3 个字段:

  1. id(长)
  2. 命令(创建/更新/删除)
  3. 数据(在更新/创建的情况下,它将包含有关该项目的信息)

我不知道我需要选择什么数据结构来保存所有这些项目。我不想保存简单的哈希表,因为它可能非常大,因为在应用程序运行的某个时刻,项目的 ID 可能很大。

我必须能够快速找到任何项目(通过查看 id)... ( o(1) )

并且有可能在应用程序运行的某个时刻 => 对项目进行通信的通信来自多个客户 => 这意味着我必须保持我的数据结构是线程安全的。

最佳答案

您还应考虑其他注意事项:

  • 如果您的应用程序崩溃,它是否需要持久存在?
  • 它是否有可能变得太大以至于无法放入内存?
  • 您是否可能需要搜索这些数据?

如果您对所有问题的回答都是否,请使用 ConcurrentHashMap<Long, YourDataObject> .如果您对任何问题的回答都是肯定的,那么我强烈建议您使用某种数据库。传统的 DBMS(如 MySQL)或类似 ElasticSearch 的东西充当您的数据结构。

关于multithreading - 如何创建可以在 O(1) 中更新(删除/创建/更新)项目并保证线程安全的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141722/

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