多线程,函数的static变量量,如何用Cmutex(或类似的方法)控制读写

kenshu kenshu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CString MyFunction(){
static CString aaa;//不同的函数可能有不同的类型变量,如CStringArray
if (SomeCondition){//如何在这一段加锁,不允许别的线程操作.
...
DoSomething();
...
}
return aaa;
}

整个程序是从单线程改为多线程并发的,有多个类似的函数.
可以一个个函数改,但尽量不要定义函数外的CMutex(或类似的变量),因为至少20几个互不相关的函数进行类似的操作,如果只定义一个全局的锁,不必要的竞争会很激烈,如果在同一个文件定义多个不同的锁,由各个文件的各个函数使用,好像又太麻烦.

可以牺牲一点性能为代价.

VC不熟,尽量详细点.

谢谢!
...全文
评论 4
收藏 已收藏
分享
返回顶部
kenshu
进程/线程/DLL 15,465 成员 49,169 内容