java - 我可以使用线程来解析信息并协调数据库插入吗?

标签 java multithreading

我有一个java软件,可以执行以下功能。 1)监听MQ队列 2)当消息到达时,需要将信息解析为json 3)根据消息信息,需要进行数据丰富,查询数据库 4)向数据库插入/更新新数据

我的疑问是最后一部分。我认为我使用线程执行步骤 1、2 和 3 来加速我的应用程序,因为它可以毫无问题地并发执行。 最后一部分(步骤 4)需要进行协调,以便按照消息到达 MQ 队列(从旧到新)的顺序将信息插入/更新到数据库中。

今天,我的应用程序在没有线程的情况下工作,因此它按顺序处理所有步骤(每次执行一条消息)而不会出现并发问题,但我知道步骤 1、2、3 可以并发执行而不会出现问题。有办法做我需要的事情吗?

我真的很感谢任何帮助。 谢谢

最佳答案

只有当您预见或实际面临任何性能问题时,您才应该考虑线程。这取决于预期的负载和性能。有时使用线程也是一种开销/成本,因为它需要协调。在单核处理器上执行多线程也会使事情变得更糟

因此,如果您发现基于预期负载的性能问题,只要您有足够的核心支持,就可以尝试一下

关于java - 我可以使用线程来解析信息并协调数据库插入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41098628/

相关文章:

java - JSch 将文件放入子目录中

java - 手动执行 isEmpty、拆分、包含和替换

java - 如果一段代码花费很长时间,则让方法返回 false

java - java中实现阻塞队列的问题

java - 如何使用切换按钮停止方法?

java - 删除 ArrayList 中的每个元素

java - 无法在 hibernate 5.1.x 中显示整个表

c++ - 将 boost::asio 线程池用于通用任务

java - 如何实现 ExecutorService 来轮流执行任务?

java - 每当调用 System.out.println 时打印任务名称