java 存储和读取流数据

3lxsmp7m  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(64)

我有一个workerprocess,它会生成一个连续的文本日志(直到它完成)。我把这个日志发送到一个Web服务器,它应该存储这个日志。同时,它应该有可能为用户查看这个日志在真实的时间通过使用不同的Web服务器接口。
实际上,我有一个HashMap,其中Key是一个ID,值是一个StringBuilder,每当有新的日志行出现时,我都会附加Data。
问题是,任何进程都使用这个HashMap,我担心会有更多的并发进程和许多想要读取日志的用户。
对于这个用例,什么是更好的方法?

lf5gs5x2

lf5gs5x21#

由于对Web服务器的所有请求都是在不同的线程中发出的,因此在以下情况下可能会发生问题:

  • 一个线程将写入StringBuilder
  • 另一个线程将读取相同的StringBuilder

最简单的解决方案:使用StringBuffer而不是StringBuilder,因为它的所有方法都是同步的。

相关问题