Java 使用 websocket 的线程更改数据和线程服务数据给用户
Java thread changing data and thread serving data to users using websocket
我正计划开发一个 java 应用程序,它用作 WebSocket 服务器。基本思想是通过使用 ArrayList 存储所有需要的数据并每分钟更新一次来减少 sql 查询次数。我的想法是创建一个 class 内部存储数据,另一个扩展 class 线程,并更新数据存储 class 中的数据。我的问题是这是否是一个好方法,还有哪些其他选择。我担心,当 WebSocket 线程为 "paused" 时,用户会在那一刻发送请求。理论上会发生什么?
使用数据库
如果您的问题是实用性而非学术性(求知欲),那么答案很简单:使用数据库。
对数据库的主要建议之一是高效、安全地处理多线程更改数据和同时查询。为什么要重新发明轮子,尤其是非常棘手的轮子?
H2 Database Engine 之类的东西似乎很适合您的需要。这种产品甚至可以 运行 嵌入到您的应用中。
如果您不关心持久存储数据,可以将其 运行 作为 “in memory” database 以获得更快的速度。
我正计划开发一个 java 应用程序,它用作 WebSocket 服务器。基本思想是通过使用 ArrayList 存储所有需要的数据并每分钟更新一次来减少 sql 查询次数。我的想法是创建一个 class 内部存储数据,另一个扩展 class 线程,并更新数据存储 class 中的数据。我的问题是这是否是一个好方法,还有哪些其他选择。我担心,当 WebSocket 线程为 "paused" 时,用户会在那一刻发送请求。理论上会发生什么?
使用数据库
如果您的问题是实用性而非学术性(求知欲),那么答案很简单:使用数据库。
对数据库的主要建议之一是高效、安全地处理多线程更改数据和同时查询。为什么要重新发明轮子,尤其是非常棘手的轮子?
H2 Database Engine 之类的东西似乎很适合您的需要。这种产品甚至可以 运行 嵌入到您的应用中。
如果您不关心持久存储数据,可以将其 运行 作为 “in memory” database 以获得更快的速度。