我实现了一个日志记录,其中多个线程可以写入一个List
日志。最后一个线程应该将List
的内容写入文件。因此,最后写入List
的线程应该将List
刷新到文件中。实现这一目标的最佳方法是什么?
对于List
我只需要一个对多个作者和一个读者有效的并发类。
答案 0 :(得分:0)
就我而言,简单的解决方案是实现Closeable
,然后在close
方法中进行刷新。
答案 1 :(得分:-1)
我的解决方案:
如果您愿意,现在将列表存储在主线程的文件中。
或
从主线程创建一个新线程并将列表存储到文件中。
请参阅以下关于CountDownLatch
的使用情况的帖子:
How is CountDownLatch used in Java Multithreading?
java中唯一可用的并发List集合是:CopyOnWriteArrayList
ArrayList的线程安全变体,其中通过创建基础数组的新副本来实现所有可变操作(添加,设置等)。