java - 哪个并发列表适合多个作者一个读者?

标签 java multithreading concurrency java.util.concurrent

我正在实现多个线程的日志记录,每个线程都会写入一个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/

相关文章:

javascript - 并行 JavaScript 代码

java - JPA 具有延迟加载字段的对象集合

java - 我如何在 Java 中过滤掉除单词、数字和一些符号之外的所有内容?

java - 如何从 maven Central 构建 nifi 处理器 nar 文件和依赖项

java - 干扰器 : journaling Example

java - 我如何包装一个方法,以便在它超过指定超时时终止它的执行?

multithreading - 如何在 Groovy 中同时运行一个循环?

java - 如何在 Android 上使用响应式扩展下载带有进度更新的文件

java - 启动@Async : what is best way to create 1000 no of threads using spring

c - Worker进程共享资源