【发布时间】:2026-02-17 23:15:01
【问题描述】:
我正在为我计划构建的服务器应用程序做一些研究。 主要功能将是 - 大量用户将能够进行实时编辑。
因此,请研究可扩展字符串的所有选项,它们基本上是某种字符串缓冲区,但能够同时处理大量(数百个?)线程处理大量文本。
与其重新发明*,我希望看到共享的库具有这样的特性 :) 我在 Google 上找不到太多东西。
【问题讨论】:
-
对于您的文档来说,字符串真的是正确的数据结构吗?它完全是纯文本吗?即使是这样,你如何处理文本中的特定部分?面对同时修改某些文本说“字符 200 到字符 210”不是解决某些字符串的可靠方法。
-
您也可以考虑一种乐观的方法 - 即 100 个人真的会同时进行编辑。也许吧,但有些 wiki 采用“检测冲突并合并”的方法,发现大多数编辑都没有争议......?
-
基本上,问题正如 Joachim 所暗示的那样——“字符串”不是正确的物理结构,即使文档在概念上可能被视为字符串。如果一个人正在编辑第 2 页而另一个人正在编辑第 4 页,那么简单的 StringBuffer 不会破解它。正如我在回答中所说,您确实需要某种数据库,然后是顶部的协议来记住各个部分如何组合在一起(并允许剪切/粘贴部分等)。这是一项具有挑战性的任务。
-
"字符串真的是文档的正确数据结构吗?"好吧,我真的不在乎。绳串数据结构看起来不错。它完全是纯文本。 “也就是说,真的会有 100 个人同时进行编辑。”是的,他们可以。虽然也许我可以允许部分并让最大数量的人编辑某个部分。也许我真的不需要多线程。每个部分都可以有自己的可伸缩字符串对象。
标签: java multithreading string scalability