【发布时间】:2011-09-11 17:54:05
【问题描述】:
读完这篇文章 - What does 'synchronized' mean? 我仍然无法理解为什么 StringBuffer 在线程安全环境中会比 StringBuilder 慢。 StringBuffer 需要做哪些额外的耗时工作才能使其变慢?
【问题讨论】:
-
您自己回答问题。 StringBuffer 是同步的,因此它必须做更多的工作,而另一个必须做的工作。在这种情况下,更糟糕的是 99% 的时间都不需要。
-
... 和他链接到的线程几乎解释了为什么同步比没有同步的代码要贵一点。
-
由于上一个问题的重点不是同步方法的额外工作,我不得不假设可能比答案中提到的更多(以证明非常激烈的“不要除非您需要我遇到的 Synchronization 语句,否则请使用 StringBuffer)。下面选择的答案提供了我需要的信息。我认为这个问题是有道理的。
标签: java synchronization thread-safety stringbuilder stringbuffer