Java 同步stringbuffer有什么用

Java 同步stringbuffer有什么用,java,multithreading,concurrency,Java,Multithreading,Concurrency,正在同步的StringBuffer方法的用途是什么。当一个线程正在更改stringbuffer时,其他线程无法确定它的实际应用和用途我将线程安全视为一种优化,以避免未定义行为的正确性。在多线程环境中,至少从无争用条件或非同步访问的角度来看,线程安全的使用将是正确的 多线程使用字符串缓冲区是安全的 这带来的性能成本可能会影响您,也可能不会影响您 如果您不需要threadsafety,即您处于单线程环境中,或者字符串是单个函数调用的本地字符串,那么看起来您可以使用未同步的字符串 什么是实际应用和用途

正在同步的StringBuffer方法的用途是什么。当一个线程正在更改stringbuffer时,其他线程无法确定它的实际应用和用途

我将线程安全视为一种优化,以避免未定义行为的正确性。在多线程环境中,至少从无争用条件或非同步访问的角度来看,线程安全的使用将是正确的

多线程使用字符串缓冲区是安全的

这带来的性能成本可能会影响您,也可能不会影响您

如果您不需要threadsafety,即您处于单线程环境中,或者字符串是单个函数调用的本地字符串,那么看起来您可以使用未同步的字符串

什么是实际应用和用途

实际上没有,这就是为什么它被替换为

它是过去遗留下来的类,并没有被弃用,因为有很多代码在使用它

例如,尽管StringBuilder是在Java 1.5中添加的,但在Java 1.4中添加的regex类直到Java 9中才获得StringBuilder支持

正如政府所说:

从JDK5发行版开始,这个类已经得到了一个等效类的补充,该类是为单线程StringBuilder设计的。通常应优先使用StringBuilderclass,因为它支持所有相同的操作,但速度更快,因为它不执行同步


字符串缓冲区可以在多线程应用程序中安全使用,因为它在多线程环境中不会造成数据不一致

示例:当我有一个初始值为Java的字符串生成器时,如果thread1尝试将is添加到字符串生成器中,thread2尝试添加受支持的,则字符串生成器可能会变为Java is或Java supported,或者Java supported导致数据不一致


在字符串缓冲区的情况下,如果thread1正在尝试添加,则thread2将等待,因此它只能变为支持Java,具体取决于您的应用程序需要。有时多个线程可能会访问同一个字符串缓冲区。在多个线程中访问什么是实际应用程序和它的用途实际上没有,这就是为什么他们用StringBuilder替换它。欢迎使用。你的问题很难理解。你能多花点时间举个例子或者修改一下你的问题让它更清楚吗?