社区
进程/线程/DLL
帖子详情
子线程如何访问主线程的全局变量
onjun
2001-01-10 04:37:00
希望能举例说明
...全文
2394
12
打赏
收藏
子线程如何访问主线程的全局变量
希望能举例说明
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
onjun
2001-02-05
打赏
举报
回复
如果在同一个主线程里创多个子线程,恐怕不宜直接调用吧?
xzjxu
2001-02-01
打赏
举报
回复
直接使用
沒有名字
2001-02-01
打赏
举报
回复
只要子线程能看到主线程的全局变量的声明就可以了。
如不在同一文件,可在子线程的.cpp 文件里声明
extern int g_var;
然后就可放心使用了,不过在使用是主意互斥访问这个数据。
yarao
2001-01-28
打赏
举报
回复
一、主进程的全局变量对它的所有子线程都是有效的
二、你可通过__beginthread(FuncName,0,pData) 传递给子线程你要访问的变量
其中 FuncName 为子线程函数的名称,pData为一个你要指向的传递的变量的指针
mjk
2001-01-28
打赏
举报
回复
请阅读《Windows 高级编程》
wishyouluck
2001-01-10
打赏
举报
回复
1.创建子线程时,将主线程指针作为参数.
2.在子线程函数中,通过AfxGetApp()获得主线程指针.
onjun
2001-01-10
打赏
举报
回复
sorry,我的本意是:在应用程序中创建子线程,子线程会用到主线程的数据,如何使用?
witsoft2000: 直接用可以吗?
我想通过继承CWinThread类来创建线程,因为,我的运行子函数是另一个类的方法。
各位,谁有例子?
这可能是一小问题,可把握难倒了。
呵呵
purpleclouds
2001-01-10
打赏
举报
回复
全局变量在整个进程中都可以访问,
你说的是不是线程同步的问题?
sxbyl
2001-01-10
打赏
举报
回复
对了,你这里的“全局”是什么意思?
witsoft2000
2001-01-10
打赏
举报
回复
直接用
sxbyl
2001-01-10
打赏
举报
回复
给个思路,如果是工作线程,给参数时指定主线程指针
如果是GUI指针,创建时先挂起,设定一个指针后开始运行
以上仅代表本人个人观点,不代表M$观点,如出现不兼容,不人不负法律责任,特此声明!
witsoft2000
2001-01-10
打赏
举报
回复
主进程的全局变量对它的所有子线程都是有效的
Android两个
子
线程
之间的通信
Android中两个
子
线程
的通信demo
Qt5_QThread_信号传递
由于只有UI
主
线程
才可以操作桌面UI,那么在多
线程
中,其它
线程
的数据若要显示出来,可以通过全局共用变量来实现,或者通过
线程
通信的方式来实现,本例程就是通过UI上的按钮启动
线程
,在
线程
中发送信号到UI
主
线程
,并在UI上显示出来
Qt多
线程
通信 附源码demo
Qt
线程
间共享数据
主
要有两种方式: 1)使用共享内存。即使用一个两个
线程
都能够共享的变量(如
全局变量
),这样两个
线程
都能够
访问
和修改该变量,从而达到共享数据的目的。 2)使用singal/slot机制,把数据从一个
线程
传递到另外一个
线程
。 代码中是针对信号和槽机制,进行描述和演示。环境是qt5.9 1、传递int参数(
主
线程
与
子
线程
) 2、传递自定义参数(
主
线程
与
子
线程
) 3、传递自定义参数(
子
线程
与
子
线程
) 4、传递自定义结构体参数(
子
线程
与
子
线程
)
Java
子
线程
获取
主
线程
的
全局变量
(ThreadLocal)
接上篇spring boot+多
线程
的使用,引入多
线程
后很大概率会遇到
主
线程
全局变量
共享给
子
线程
的情况,以及各
线程
变量不共享的情况,下面就简单介绍下两个神器 ThreadLocal InheritableThreadLocal ThreadLocal做
线程
级的数据隔离 InheritableThreadLocal可继承的
线程
变量表,可以让
子
线程
获取到父
线程
中ThreadLocal的值。 看个例
子
: public class BaseTest { public static...
python
子
线程
共享
主
线程
变量_Python多
线程
-2(
线程
共享
全局变量
)
例
子
:from threading import Thread,Lockfrom time import sleep, ctimeglobal_num = []def func1():global global_numfor i in range(5):sleep(1) #假设是最耗时的
主
过程lock.acquire()#两个
线程
会最开始抢这个锁,拿到锁就会处于关锁,执行后面的程序,其他
线程
执行...
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章