你能告诉我如何在多线程应用程序中实现队列。
我必须在我的应用程序中注册队列中的事件(来自所有用户的事件),我每隔100个事件刷新并保存到数据库以提高性能。我不想为每个用户提交保存数据库日志。我想提交e.x.每100个事件到数据库将比100个单一提交更快。我有三个想法:
你还有其他想法吗?我不使用log4j,因为我必须将日志保存到数据库 - 而不是文件,哪种方法最好?
答案 0 :(得分:2)
您可以尝试像ArrayBlockingQueue
这样的BlockingQueue实现。任何线程都可以安全地将事件添加到队列中,并且一个(或多个)线程可以安全地从队列中删除元素。让后台线程等待队列中的事件(BlockingQueue.take()
)。一旦你收集了100个元素,就做你的东西。