我正在实现多个线程的日志记录,每个线程都会写入一个List
。所有线程完成后,我会将 List
的内容转储到文件中。我应该使用哪种并发 List
实现?
我正在考虑ConcurrentLinkedQueue .
- 写入将是并发的,但读取将在所有其他线程完成写入后由一个线程完成。
我可以为每个线程使用一个List
,但是这样我就会有管理多个List
的开销,而且我不确定它是否值得。另一种选择是 synchronized List .
额外问题:如何让最后一个线程将列表转储到文件中?请参阅Multiple threads arrive, the last should do the processing .
最佳答案
请 - 不要。
Java有一个logging framework已经内置,并且可以完全自定义以创建不同的处理程序和格式化程序。如果您出于某种原因不喜欢标准 Java 日志记录框架,那么仍然有许多其他可用的框架。所有这些框架都处理并发。
如果您花时间创建一个已经存在并完善了很长时间的框架,您可以创建一些为世界添加新内容的东西。
关于java - 哪个并发列表适合多个作者一个读者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151086/