Java提供三個字符串操作類String,StringBuilder and StringBuffer
。 其中StringBuilder
未同步,並且StringBuffer
正在同步。我們可以同步字符串生成器嗎?
所以我只想問是否有可能同步StringBuilder
。
Java提供三個字符串操作類String,StringBuilder and StringBuffer
。 其中StringBuilder
未同步,並且StringBuffer
正在同步。我們可以同步字符串生成器嗎?
所以我只想問是否有可能同步StringBuilder
。
當然,只需使用塊進行外部同步,或者從多個線程訪問StringBuilder
時手動同步。
但你爲什麼要?您已有StringBuffer
。
如果你知道StringBuffer是同步的,爲什麼你需要同步StringBuilder?
我應該可以延長StringBuilder的,並創建調用不同步的方法
報價
這個類[StringBuilder的]提供 的StringBuffer兼容的API一個同步方法,但沒有保證同步。這個類是 設計用作在單個線程正在使用字符串緩衝區的場所 中的StringBuffer的替代替代品(通常情況下爲 )。在可能的情況下,建議優先使用此類 ,因爲在大多數 實現中它將更快。
是的,你可以藉助鎖定機制,如方法或塊或Reentrantlock
。
StringBuffer
已經存在,建議使用它。
當然..您可以同步StringBuilder
,但StringBuffer
已經存在於同步的API中。
StringBuffer
具有用於數據操縱的方法(insert()
,append()
等)以及數據讀出的方法(indexOf()
,subSequence()
,toString()
等)同步的所有的方法。
通過同步,只使用StringBuilder
時您希望線程安全的特定代碼塊,我認爲您可以獲得一些性能。
當StringBuffer已經存在時,你想同步StringBuilder? –
你到底想做什麼? –
我們可以在任何對象上進行同步。 – ZhongYu