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