2013-04-12 48 views
2

Java提供三個字符串操作類String,StringBuilder and StringBuffer。 其中StringBuilder未同步,並且StringBuffer正在同步。我們可以同步字符串生成器嗎?

所以我只想問是否有可能同步StringBuilder

+1

當StringBuffer已經存在時,你想同步StringBuilder? –

+0

你到底想做什麼? –

+0

我們可以在任何對象上進行同步。 – ZhongYu

回答

4

當然,只需使用​​塊進行外部同步,或者從多個線程訪問StringBuilder時手動同步。

但你爲什麼要?您已有StringBuffer

0

如果你知道StringBuffer是同步的,爲什麼你需要同步StringBuilder?

我應該可以延長StringBuilder的,並創建調用不同步的方法

2

報價

這個類[StringBuilder的]提供 的StringBuffer兼容的API一個同步方法,但沒有保證同步。這個類是 設計用作在單個線程正在使用字符串緩衝區的場所 中的StringBuffer的替代替代品(通常情況下爲 )。在可能的情況下,建議優先使用此類 ,因爲在大多數 實現中它將更快。

0

是的,你可以藉助鎖定機制,如​​方法或塊或Reentrantlock

StringBuffer已經存在,建議使用它。

0

當然..您可以同步StringBuilder,但StringBuffer已經存在於同步的API中。

StringBuffer具有用於數據操縱的方法(insert()append()等)以及數據讀出的方法(indexOf()subSequence()toString()等)同步的所有的方法。

通過同步,只使用StringBuilder時您希望線程安全的特定代碼塊,我認爲您可以獲得一些性能。

相關問題