马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 剑仙十号 于 2023-3-15 15:00 编辑
【剑仙教程】多线程篇。多个线程,能共用同一个子函数?
说不得 22:44:28
有大神在吗?
请教个问题:大漠绑定多窗口并同时操作怎么实现?
整装出发 22:47:27
每个窗口 对应一条线程,
每条线程 创建一个大漠对象
说不得 22:47:41
说下我的方法:
传参:ai
dm[ai].findstr(xa,ya,xb,yb,string,color_format,sim,intX[ai],intY[ai])
说不得 22:49:18
每个窗口对应大漠对象的时候,intx和inty也互相干扰...
说不得 22:49:37
这样的话,以后的代码可是有的写了...
有没有简单的办法?
坤 09:20:33
多开的话。尽量少用全局变量。需要使用的话记得用数组。
如果是函数内部的局部变量的话,那是不影响的,可以所有窗口公用的
=======================================================
intx和inty,你定义为全局变量 有什么意义?
都是操作完就释放,定义为局部变量就行
多线程 共用同一个子函数。
定义在子函数.里面的局部变量,重名的 也不会相互干扰,相互影响
关键词:全局变量 局部变量
.
四大内存分区:
堆区和自由储存区、
栈区、
静态存储区(全局变量 常量),
代码区(代码的十六进制编码 字符串常量)
全局变量 是在静态存储区 分配内存,
.
局部变量 在栈区 分配内存。
多条线程 调用子函数,就会有多个栈。每个子函数的局部变量,分配到的内存块 不一样。
所以多条线程,调同一个子函数。子函数.局部变量的数据,完全不会相互覆盖,相互冲突。
百度搜索:四大内存分区,
子函数的参数和局部变量,入栈出栈的原理,
就清清楚楚了。
这两个知识点,非常重要。在查找内存数据、找call写call时 都要用到,
=======================================================
|