哥,什么意思呢? |
线程死锁 |
剑仙十号 发表于 2017-3-9 19:21 首先谢谢你回答,我是一个窗口对应一个线程的,开的线程是做任务,任务做完了切换回主线程,再循环关闭开启任务线程 |
多线程技术2。 什么是单线程,双线程,多线程? . 同时执行两个或者多个,叫多线程。 单线程,就比如你聊完QQ然后上贴吧。 双线程,就比如你可以同时聊QQ和上贴吧 . 再说得详细点, 同一个窗口,一个人干活和两个人干活的区别。 两个不同的窗口,一个人干活和两个人干活的区别。 // // 单核心与多核心 CPU。 . 单核心,相当于一个"强人"在干活。 单核心双线程,一个“强人”干一项,二项任务,这样是可以的。 单核心多线程,一个“强人”干多项任务,会卡慢电脑。 多核心,则相当于是多了一个人,两个人干活,又势必比我一个“强人”快。 // // ①单窗口单线程。 一条生产线,1个强人在干活。 ②单窗口多线程。 一条生产线,2个强人在干活。 . ③多窗口多线程。 2条生产线, 每条生产线,都有1个强人在干活。 2条生产线, 每条生产线,都有2个强人在干活。 // // 攒机。看配置请微信 计算机,单线程和双线程的差别到底是什么? Andrew He 多线程相当于两条生产线,你发出的需求就是他们的任务,两条就可以并行处理两个任务。 . 不过我猜,可能问的没那么简单, i3是双核4线程,i5是4核4线程,i7则是4核8线程,不知道题主是不是问这些中间的区别。 (同核心不同线程,同线程不同核心),就顺便简单引申一下吧。 . 线程是逻辑控制单元,而核心是真正独立的物理核心。 所以i3多线程,相当于是我是一个多任务强手,甚至于我比一般人多一只手,所以我处理多任务的时候会比一般人快。 但i5是多核心,则相当于是多了一个人,两个人干活,又势必比我一个“强人”快。 i7。i7原理和i3一样,就是比i3多了2个核,所以比i3多拥有4个线程。 // // 追问(提问者): 也就是说,单核心 也拥有双线程? 双核单线的任务处理能力强于单核双线程? . Andrew He: 双核至少也有双线程,所以肯定强于单核双线程。 Andrew He: 也就是说一个核心,至少有一个线程,多出来的线程可以是 超线程技术或者其他技术。 但单核双线程,是比不上真正的双核双线程的。 |
tc简单开发吧,百度贴吧。 精品区。 tc简单开发。多线程技术1。 . 在tc1.0版以前,脚本执行的方式,都是单线程的。 单线程好比是公路上的单行道,脚本代码只能一条一条的执行,按顺序的执行。 而多线程,则提供了多车道。 多线程像公路上的行车道,超车道,单车道,人行道,多个脚本的代码,可以同时的执行,并排的执行。 ……………… ……………… 在tc简单开发中, 线程是开启着的子函数,多线程,就是多个开启着的子函数! (函数在tc中又叫功能)。 一子函数在一边放着,没有动,这样不能算做一个线程。 ……………… ……………… 1、一个线程由BeginThread命令,和下面跟着的子函数组成。 例子: 线程ID = threadbegin("子函数", "") // 功能 子函数() //从这里开始你的代码 结束 (ajjl,易语言中的多线程,操作方法大同小异。) ……………… ……………… 2、使用threadbegin命令,一定要事先做好“全局变量”。tc中规定,写在功能外面的var 是“全局变量”。 var 线程ID0, 线程ID1, 线程ID2 功能 子函数0() //从这里开始你的代码 结束 功能 子函数1() //从这里开始你的代码 结束 功能 子函数2() //从这里开始你的代码 结束 // 功能 启动_热键() var ret = 线程获取状态(线程ID0) if(ret == 假) 线程ID0 = 线程开启("子函数0", "") 线程ID1 = 线程开启("子函数1", "") 线程ID2 = 线程开启("子函数2", "") end 结束 功能 终止_热键() 线程关闭(线程ID0) 线程关闭(线程ID1) 线程关闭(线程ID2) 结束 线程0,线程1,线程2这三台车,是同时在三条车道上运行着的。 ……………… ……………… 3、多个线程,可以使用同一个子函数。 示例1: var 线程ID0, 线程ID1, 线程ID2 功能 启动_热键() var ret = 线程获取状态(线程ID0) if(ret == 假) 线程ID0 = 线程开启("子函数", "0") 线程ID1 = 线程开启("子函数", "1") 线程ID2 = 线程开启("子函数", "2") end 结束 功能 终止_热键() 线程关闭(线程ID0) 线程关闭(线程ID1) 线程关闭(线程ID2) 结束 功能 子函数(i) while(1) traceprint("线程" & i) sleep(1000) end 结束 // // 示例2:商业辅助的写法。 1,用数组来保存 线程ID. 2,多个线程,使用同一个子函数. var 线程ID = 数组() 功能 启动_热键() var ret = 线程获取状态(线程ID[0]) if(ret == 假) for(var i = 0; i < 3; i++) 线程ID[i] = 线程开启("子函数", i) end end 结束 功能 终止_热键() for(var i = 0; i < 3; i++) 线程关闭(线程ID[i]) end 结束 功能 子函数(i) while(1) traceprint("线程" & i) sleep(1000) end 结束 ……………… ……………… 4、在线程中,可以使用命令开启,关闭,暂停,恢复某一线程。 线程开启() 线程关闭() 线程暂停() 线程恢复() 参数1填的,都是线程ID。 // 多线程的优点: 脚本相互制约,相互作用,减少代码量。 ……………… ……………… 5、线程开启() 的代码,禁止放入循环内。 如果线程开启() 放在循环内,循环着开启线程, 内存会被消耗干净,卡死电脑。严重的会烧坏CPU。 ……………… ……………… 6、线程是占用 运算核心的。 一线程就是 一条生产线。 多线程就是 多条生产线。 现在的CPU,i3__双核4线程。i5__4核8线程。i7__8核8线程。 单核CPU在同一时间,只能照着2线程。多核心的,参考上面的文字说明。 在编写辅助时,必须减少线程的数量,提高线程的质量。 每1线程对应 1窗口, 43线程对应 43窗口。 . mm198702: 这个和 取消勾选“禁止重复运行”,效果一样的吧? . 卡特琳娜的旋转: 不一样。 在同一脚本中的多线程,可以共享数据的。 而多个脚本之间的线程,数据难以沟通共享。 |
tc。多线程这么卡。 . 码农-龙大: 17:05:11 tc多线程怎么这么卡?? // 剑仙十号: 17:26:19 多线程做30开,40开都很稳定呀。 你有没有 先做代码框架,一个线程对应一个窗口。 . 30个线程30窗口,40线程40窗口。 // 自由存在 - 正在输入: 17:27:34 多开必须代码构架好,不然还没有到就直接崩了 |
不要用多个线程控制一个窗口。 这是浪费CPU运算核心的做法, 每个线程,都要占用一个运算核心的。 |
用三个线程,控制一个游戏窗口吗? 建议:把三线程合并为一个。每个线程控制一窗口。 当年我做热血江湖辅助,一线程控制一窗口,43线程控制43窗口,完全的很稳定,无BUG。 |
GMT+8, 2025-9-17 17:59 , Processed in 0.271387 second(s), 28 queries .
Powered by 海安天坑软件科技有限公司
© 2001-2013 Comsenz Inc.