我有一个工作进程,它生成连续的文本日志(直到完成)。我将此日志发送到网络服务器,该服务器应存储此日志。同时,用户应该可以使用不同的 Web 服务器界面实时查看此日志。
实际上我有一个 HashMap,其中 Key 是一个 ID,值是一个 StringBuilder,每当出现新的日志行时我都会在其中追加数据。
问题是,任何进程都使用这个 HashMap,我担心什么时候会有更多的并发进程和许多想要读取日志的用户。
对于这个用例,更好的方法是什么?
由于对 Web 服务器的所有请求都是在不同的线程中发出的,因此在以下情况下可能会出现问题:
StringBuilder
StringBuilder
。最简单的解决方案:使用
StringBuffer
而不是 StringBuilder
,因为它的所有方法都是同步的。