TC官方合作论坛

 找回密码
 立即注册
查看: 3543|回复: 9

[已解决] 多线程求不互相干扰。。。。

[复制链接]
发表于 2013-11-12 11:41:28 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
同时开两个线程,而且两个线程还不互相干扰,如何解决?谢谢
回复

使用道具 举报

发表于 2013-11-13 10:09:21 | 显示全部楼层
1525299008 发表于 2013-11-13 09:07
我再改变一下思路,如果线程2和线程3都不是无限循环呢?,也就是说1、2、3都执行一遍,利用找图,反复循 ...

可以解决
回复 支持 反对

使用道具 举报

发表于 2013-11-12 11:53:06 | 显示全部楼层
本身来说,他们就是不互相干扰的
http://bbs.tyuyan.com/thread-33127-1-1.html
看看这课
回复 支持 反对

使用道具 举报

发表于 2013-11-12 12:08:03 | 显示全部楼层
如果不是占用同一个资源,线程之间就是不会互相干扰的。占用同一个资源,比如前台的,一个线程要鼠标移动到100,100,另一个线程在移动到50,50,当同时开启两个线程,就不知道哪个先哪个后了,这时可以用临界区来让它们进行排序运行。帮助文档在线程空间里这一方面说的很详细,有例子
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-12 12:44:45 | 显示全部楼层
星.月 发表于 2013-11-12 12:08
如果不是占用同一个资源,线程之间就是不会互相干扰的。占用同一个资源,比如前台的,一个线程要鼠标移动到 ...

一个线程里有鼠标和按键(人物做一个动作),另一个线程有按键(人物做另外一个动作)。是不是所说的同一个资源?
假设,如果有3个线程,我先让第一个线程开始,第2、3线程等待,等第一个线程结束后停止,这时第2、3线程同时开始。这样的顺序反复循环。这样的思路就是需要用到临界点的知识了?还需要其他什么知识?
回复 支持 反对

使用道具 举报

发表于 2013-11-12 15:37:47 | 显示全部楼层
1525299008 发表于 2013-11-12 12:44
一个线程里有鼠标和按键(人物做一个动作),另一个线程有按键(人物做另外一个动作)。是不是所说的同一 ...

只要两个线程不要同时使用按键,或者同时使用鼠标就ok,同时用到了就用临界区,线程一个先开,运行完了,再开另一个线程,不会占用同一资源
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-12 15:59:57 | 显示全部楼层
本帖最后由 1525299008 于 2013-11-12 16:08 编辑
星.月 发表于 2013-11-12 15:37
只要两个线程不要同时使用按键,或者同时使用鼠标就ok,同时用到了就用临界区,线程一个先开,运行完了, ...

现在还不会临界点的知识。所以凭现有的知识,想个思路。请您看看。

在一个大循环里,判断找图,没找到的话,就关掉线程2和线程3,并执行线程1(1是不循环的),否则就关掉线程1,并同时执行线程2和线程3.      (线程2和线程3都是无限循环的)           

这样的思路有什么问题吗?比如说有可能会不会卡住。现在的状况是,2和3可以同时开启,这个影响不大。但是1不能和2或者3或者2、3同时开启。

这里有个问题,当找到图后,同时执行线程1和线程2,这个图会一定时间里不变,所以会反复同时执行线程2和线程3,不停点起线程2和线程3,会不会卡住?如果有,有什么方法解决?
回复 支持 反对

使用道具 举报

发表于 2013-11-12 16:43:10 | 显示全部楼层
1525299008 发表于 2013-11-12 15:59
现在还不会临界点的知识。所以凭现有的知识,想个思路。请您看看。

在一个大循环里,判断找图,没找到的 ...

你这个肯定不能通过找到图就开启一个线程,而且这个线程还是无限循环的,当图一直存在的时候,线程开的越来越多,而且每次线程句柄都重新赋值了,关都关不了。思路就不对,把那些无限循环的线程独立出来,循环里加判断,什么时候跳出循环。如果是像做主线任务那种无限循环,找到图就点,同时另一个线程在无限循环判断验证码出现,最好用临界区了,主线还要分段进行
回复 支持 反对

使用道具 举报

发表于 2013-11-12 17:03:54 | 显示全部楼层
去理解 一下 什么  叫  线程   ,   
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-13 09:07:04 | 显示全部楼层
星.月 发表于 2013-11-12 16:43
你这个肯定不能通过找到图就开启一个线程,而且这个线程还是无限循环的,当图一直存在的时候,线程开的越 ...

我再改变一下思路,如果线程2和线程3都不是无限循环呢?,也就是说1、2、3都执行一遍,利用找图,反复循环判断,是不是可以解决问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-23 09:55 , Processed in 0.039618 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表