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

kenshu 2012-03-31 11:23:03
CString MyFunction(){
static CString aaa;//不同的函数可能有不同的类型变量,如CStringArray
if (SomeCondition){//如何在这一段加锁,不允许别的线程操作.
...
DoSomething();
...
}
return aaa;
}

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

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

VC不熟,尽量详细点.

谢谢!
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenshu 2012-04-05
  • 打赏
  • 举报
回复
大家帮忙看看?
kenshu 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
把多个锁定义到一个Common的文件,其他文件都可以包含它
[/Quote]

我是新手,VC只学了个皮毛.
不知道如何定义和使用锁.

尽量详细点.

再,类似的函数,最好不要一进去就加锁退出再解.因为大部份的操作只是读,只是有需要的时候才写.

谢谢!
oyljerry 2012-03-31
  • 打赏
  • 举报
回复
把多个锁定义到一个Common的文件,其他文件都可以包含它
kenshu 2012-03-31
  • 打赏
  • 举报
回复
有人帮我看看吗?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧