我有一个同步的方法。我想使用字符串缓冲区来形成一个长串联字符串。我知道StringBuffer和StringBuilder都可以完成这项工作。同时,我认为StringBuilder更好,因为它不会产生任何额外的同步成本,因为该方法已经做到了。
你说什么?
答案 0 :(得分:2)
如果您正在管理线程安全,那么StringBuilder
是不错的选择,在后一种情况下StringBuffer
会更好。
从您自己管理线程安全总是更好,因为有时您的代码中有非常小的关键部分,因此只有method level Synchronization
block level
是不够的,但是在方法中比如StringBuffer
,有时同步会导致高成本,但无论如何它都可以满足您的需求。
答案 1 :(得分:1)
只要多个线程没有访问StringBuilder
本身或导致以并发方式访问它,那么你应该没问题。
在您的情况下,如果StringBuilder/Buffer
所在的方法是synchronized
,则任何时候只有一个线程可以访问它,因此StringBuilder
就足够了。
答案 2 :(得分:0)
由于您的StringBuilder对象未与其他线程共享,您可以使用..