關於string和wstring的實現

印象中早期的wstring和string的實現都是基於引用計數然後再加copy-on-write的。

關於什麼是引用計數和copy on write,請大家自行搜索相關文檔。 

 

基於引用計數和copy-on-write的實現不是線程安全的,不建議用在多線程環境中。這一思維

在很多文章裏出現了。 網上有很多文章也說明了wstring不適合用在線程安全的環境裏。

 

由於工作的關係,我看了VS2005平臺下的string和wstring的實現,發現這兩個實現

不是基於引用計數的。每次string拷貝的時候,都新申請了內存並用了memcpy來複制

字符串。由此可以知道VS 2005版本的實現不是基於引用計數的。

 

因此,在多線程環境裏共享wstring是不會發生問題的。 (當然不包括一個線程讀,一個線程寫的情況)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章