java - 用java非阻塞MySQL更新?

标签 java mysql multithreading asynchronous c3p0

对于我正在开发的多人游戏,我想将事件记录到 mysql 数据库而不阻塞游戏更新线程,这样如果数据库繁忙或表被锁定,游戏就不会停止运行等待写入。

实现这一目标的最佳方法是什么?

我正在使用 c3p0 来管理数据库连接池。到目前为止,我最好的想法是将查询更新字符串添加到同步列表中,并使用一个独立的线程每 100 毫秒检查该列表并执行它在那里找到的查询。

最佳答案

My best idea so far is to add query update strings to a synchronized list with an independent thread checking the list every 100ms and executing the queries it finds there.

如果你不想阻塞你的主线程,这对我来说听起来不错,除了不使用同步列表和 100ms 轮询,而是使用一些 BlockingQueue而是实现。 LinkedBlockingQueue应该完成这项工作,如果你让它不受限制,它永远不会阻塞你的主线程。

关于java - 用java非阻塞MySQL更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2840015/

相关文章:

java - Netty 的 HttpObjectAggregator 似乎错过了 HTTP block

java - 如何在 Java 的 Play Framework 2.5.9 中启用 CORS

java - 2 个具有相同 Id 的类如何更改属性并反射(reflect)在两个类中

mysql - SQL Double NOT IN 与 COUNT

php - 这个 PHP 和/或 MySQL 查询有什么问题?

java - Java 初始化线程时出现拒绝访问错误

java - 边框格式在 thread.sleep() 之前未更新

java - Java中如何声明ObservableArrayList数组

php - 第二条 SQL 语句未执行

linux - udev 是线程安全的吗?