【发布时间】:2017-11-10 07:47:16
【问题描述】:
在我当前的项目中,如果需要在 db 中异步写入某些内容(以记录一些数据),我们正在使用线程池执行器。 由于它只是一个 IO 操作,而不是为每个写入调用使用线程,我们可以拥有类似于事件驱动机制的东西。 单个线程将在 while 循环中运行并将进行异步数据库调用。类似于 java NIO 用于网络调用。
【问题讨论】:
标签: java multithreading events asynchronous nio
在我当前的项目中,如果需要在 db 中异步写入某些内容(以记录一些数据),我们正在使用线程池执行器。 由于它只是一个 IO 操作,而不是为每个写入调用使用线程,我们可以拥有类似于事件驱动机制的东西。 单个线程将在 while 循环中运行并将进行异步数据库调用。类似于 java NIO 用于网络调用。
【问题讨论】:
标签: java multithreading events asynchronous nio
【讨论】:
不,无论您做什么,都至少需要一个线程。如果您确实有driver that uses NIO,您仍然会有一个运行select() 的额外线程。
我不确定您是如何在当前项目中实现它的,但即使使用执行器(如建议的那样,SingleThreadExecutor 就足够了),它也不应该很复杂。
【讨论】: