全局变量可以多个函数间共享数据,全局变量可以所有线程共有。但有时,需要提供线程私有的全局变量,仅在某个线程中有效。 线程私有数据 TSD thread-specific Data 。
这个是在Linux 开发下可以使用的方法。
但在windows,VC中如何实现这个功能呢。
如何在VC多线程下使用私有的全局变量
答案:4 悬赏:0 手机版
解决时间 2021-03-01 20:22
- 提问者网友:萌卜娃娃
- 2021-03-01 08:40
最佳答案
- 五星知识达人网友:行路难
- 2021-03-01 09:46
貌似没有很好的办法。只有为函数增加一个参数(指针或引用,一个变量的话可以引用,多个就只能用指针了),在线程中定义变量并将变量传入。
全部回答
- 1楼网友:躲不过心动
- 2021-03-01 12:56
waitforsingleobject(pframeinqueue->m_mutex,infinite);
releasemutex(pframeinqueue->m_mutex); 需要成对的出现.你在if判断里边释放一次
但是如果if条件不成立,你就没有调用释放.这样的结果就是互斥量mutex被锁定,
其他线程无法调用.
在2个if判断外加上释放mutex的语句再试一试
- 2楼网友:行雁书
- 2021-03-01 11:57
线程函数的里面定义临时变量,然后while()体里面可以一直使用吧?而外面谁也没法使用其啊?这样不可以吗?
- 3楼网友:野慌
- 2021-03-01 10:25
#include
int myGlobal = 3;
static void ChangeMyGlobal(void)
{
myGlobal = 5;
}
int main(void)
{
printf("%d\n", myGlobal);
ChangeMyGlobal();
printf("%d\n", myGlobal);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯