我有一个类,它包含一个BYTE*
,一个参考计数器和一个CRITICAL_SECTION
,它可以保护他们免受并发访问。std :: tr1 :: shared_ptr是否互斥?
我想用std::tr1::shared_ptr<BYTE>
替换所有这些。该MSDN说:
多个线程可以读取和写入 不同shared_ptr对象的同时,即使对象是股权份。
一切听起来都很好,直到我发现来自该类的CRITICAL_SECTION
在它之外被用来“锁定”它并以互斥的方式改变它的内容。好吧,它是休息封装,我想改变它。
我知道shared_ptr
保证内存将被释放,但它确保当您写入内存时互斥?
'shared_ptr'不知道你对它指向的对象做了什么。所有你保证的是,即使在同时使用时,共享指针容器本身也能正常工作。 –