关于string和wstring的实现

印象中早期的wstring和string的实现都是基于引用计数然后再加copy-on-write的。

关于什么是引用计数和copy on write,请大家自行搜索相关文档。 

 

基于引用计数和copy-on-write的实现不是线程安全的,不建议用在多线程环境中。这一思维

在很多文章里出现了。 网上有很多文章也说明了wstring不适合用在线程安全的环境里。

 

由于工作的关系,我看了VS2005平台下的string和wstring的实现,发现这两个实现

不是基于引用计数的。每次string拷贝的时候,都新申请了内存并用了memcpy来复制

字符串。由此可以知道VS 2005版本的实现不是基于引用计数的。

 

因此,在多线程环境里共享wstring是不会发生问题的。 (当然不包括一个线程读,一个线程写的情况)

 

 

你可能感兴趣的:(多线程,工作,String,文档,平台)