【发布时间】:2017-05-24 06:57:11
【问题描述】:
我正在为多个线程实现日志记录,每个线程都会写入List。在所有线程完成后,我会将List 的内容转储到一个文件中。我应该使用哪个并发List 实现?
我正在考虑ConcurrentLinkedQueue。
- 写入将是并发的,但读取将在所有其他线程完成写入后由一个线程完成。
我可以为每个线程使用一个List,但是我会承担管理多个Lists 的开销,我不确定这是否值得。另一种选择是synchronized List。
额外问题:如何让最后一个线程将列表转储到文件中?见Multiple threads arrive, the last should do the processing。
【问题讨论】:
-
ArrayBlockingQueue ?
-
@StanislavL 需要我提前知道容量,我没有这个信息。
-
请提供一个清晰、简洁的问题示例。我无法从您的问题中读取您要实现的目标以及遇到的代码问题。也许softwareengineering.stackexchange.com 是解决这个问题的更好地方。
标签: java multithreading concurrency java.util.concurrent