精易论坛

标题: 真·多线程防崩溃防卡死【线程自动分配保证处于工作状态,能超时重试】 [打印本页]

作者: anyuezhiji    时间: 2016-9-3 23:34
标题: 真·多线程防崩溃防卡死【线程自动分配保证处于工作状态,能超时重试】
真·多线程防崩溃防卡死.zip (158.61 KB, 下载次数: 4340)
0、前面发的那版只是临时顺手写的,也没怎么检查,只有思路和流程有参考价值,但还是有网友表示支持,于是就有了这一版
1、测试发现精易模块的函数比易语言自带的更稳定,这一版本果断使用了精易模块
2、用于改动核心程序就可用于自己的功能,多线程控制模块已经测试好
3、保证有任务时启用的线程处于工作状态,完成任务的线程会自动分配的新的任务,不用等待其他线程
4、可以结束超时的任务,并且设定重试次数
5、重试达到次数还是失败的任务可以在超时处理设定后续处理
6、可以暂停、恢复、结束任务
7、模拟卡死测试,启用1248线程测试,程序运行流畅
8、获取qq昵称测试,100线程测试效果优秀,不要用800线程测,会被qq服务器拒绝,然后除了最开始几十个任务,其他所有任务超时退出的(不要问我怎么知道的)
9、不要问我测试的qq哪来的,我在本论坛求助版块无意中下载的某个程序顺手提取的数据,忘了是哪个帖子的哪个程序的
10、本来有心写个教程一起发上来的,但是最近确实有事没时间,直接发源码,有兴趣的自己去研究吧
11、够了,算上这条都12条了,就到这吧
12、12表示13其实是个很吉利的数字,所以还是13条吧...

作者: Seven3in    时间: 2016-9-3 23:37
沙发占了!         
作者: anyuezhiji    时间: 2016-9-3 23:42
7Win 发表于 2016-9-3 23:37
沙发占了!

额 我用7zip打包的 用rar解压? rar版本低了吧
作者: anyuezhiji    时间: 2016-9-3 23:44
7Win 发表于 2016-9-3 23:37
沙发占了!


没问题呀.我用winrar5.21解压没问题

作者: key356    时间: 2016-9-3 23:53
文件貌似损坏??
作者: anyuezhiji    时间: 2016-9-3 23:59
真·多线程防崩溃防卡死.rar (176.21 KB, 下载次数: 1017)
主楼是用7zip打包的,有人反应用低版本的winrar解压不行,
这里补个winrar5.21打包的

作者: 星云散落    时间: 2016-9-4 07:10
学习一下了
作者: xujunhui    时间: 2016-9-4 08:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小小莹莹    时间: 2016-9-4 09:01
支持楼主,来看看的
作者: 专注腾讯营销    时间: 2016-9-4 13:11
不知道这个多线程是否可以加拨号换IP,没有找到地方,楼主看看是否可以加拨号
作者: anyuezhiji    时间: 2016-9-4 13:28
专注腾讯营销 发表于 2016-9-4 13:11
不知道这个多线程是否可以加拨号换IP,没有找到地方,楼主看看是否可以加拨号



作者: 专注腾讯营销    时间: 2016-9-4 16:52
anyuezhiji 发表于 2016-9-4 13:28

不行,请更新下带换IP功能谢谢,换了IP好像之前的线程有点没有处理完自动跳过
作者: anyuezhiji    时间: 2016-9-4 17:15
专注TX营xiao 发表于 2016-9-4 16:52
不行,请更新下带换IP功能谢谢,换了IP好像之前的线程有点没有处理完自动跳过
  
数据类型名公开备 注
线程传参 
成员名类 型传址数组备 注
数据序号   
状态信号 表示线程ID的状态,0为空闲,1为繁忙,2为刚处理完成
线程序号   
启动时间   
重试次数   


  
子程序名返回值类型公开备 注
_跳转线程  
参数名类 型参考可空数组备 注
线程ID 
变量名类 型静态数组备 注
数据ID  
状态文本型 
' 通讯信号_数组 [线程ID].状态信号:表示线程ID的状态,0为空闲,1为繁忙,2为刚处理完成,3为超时被结束
判断循环首 (正计次 < 数据总量 通讯信号_数组 [线程ID].状态信号 = 0 结束信号 = )
通讯信号_数组 [线程ID].状态信号 = 1
' ——————————————————————
进入许可区 (许可证)
正计次 = 正计次 + 1  ' InterlockedIncrement (正计次)
如果真 (正计次 > 数据总量)
退出许可区 (许可证)
跳出循环 ()
数据ID = 正计次
退出许可区 (许可证)
' ——————————————————————
' ——————————————————————
通讯信号_数组 [线程ID].数据序号 = 数据ID
通讯信号_数组 [线程ID].线程序号 = 线程ID
通讯信号_数组 [线程ID].重试次数 = 超时重试
判断循环首 (通讯信号_数组 [线程ID].重试次数 > -1 通讯信号_数组 [线程ID].状态信号 = 1 结束信号 = )
通讯信号_数组 [线程ID].启动时间 = 取启动时间 ()
核心线程句柄_数组 [线程ID]线程_启动 (&核心程序, 取指针地址 (通讯信号_数组 [线程ID]), )
判断循环首 (结束信号 = 数据ID > 0)  ' 无限循环,判断
程序_延时 (5)
如果真 (通讯信号_数组 [线程ID].状态信号 = 2)
跳出循环 ()
如果真 (是否挂起 = 取启动时间 () - 通讯信号_数组 [线程ID].启动时间 > 超时时长 通讯信号_数组 [线程ID].状态信号 = 1)
' 强制结束线程 (线程句柄_数组 [线程ID])
线程_销毁 (核心线程句柄_数组 [线程ID])
超时处理 (数据ID, 线程ID)
InterlockedIncrement (超时计数)
' 通讯信号_数组 [线程ID].状态信号 = 3
跳出循环 ()

判断循环尾 ()
如果真 (通讯信号_数组 [线程ID].重试次数 = 0 通讯信号_数组 [线程ID].状态信号 = 1)
InterlockedIncrement (失败计数)
跳出循环 ()
通讯信号_数组 [线程ID].重试次数 = 通讯信号_数组 [线程ID].重试次数 - 1
判断循环尾 ()
' ——————————————————————
' ——————————————————————
进入许可区 (许可证)
如果真 (数据ID = 数据总量)
正计次 = 正计次 + 1
逆计次 = 逆计次 - 1
退出许可区 (许可证)
通讯信号_数组 [线程ID].状态信号 = 0
判断循环尾 ()


i支持库列表   支持库注释   
EThread多线程支持库
shellEx扩展功能支持库一

  
子程序名返回值类型公开备 注
挂起核心线程  
参数名类 型参考可空数组备 注
是否切换IP逻辑型
变量名类 型静态数组备 注
线程ID整数型 
如果 (是否挂起 = )
是否挂起 = 真
挂起计时 = 取启动时间 ()
计次循环首 (线程总数, 线程ID)
如果真 (是否切换IP)
通讯信号_数组 [线程ID].重试次数 = 超时重试 + 1
线程_挂起 (核心线程句柄_数组 [线程ID])
计次循环尾 ()
信息框 (“已经挂起,请先恢复...”, 0, , )
' 在换IP时,是否切换IP参数为真,把线程重试次数增加


作者: xiekyle    时间: 2016-9-5 07:52
学习下,看看好不好使,谢谢分享
作者: 萨比    时间: 2016-9-5 11:36
Mk
作者: 萨比    时间: 2016-9-5 11:37
mkmkmkmk
作者: 908941594    时间: 2016-9-5 16:35
学习了 收下了
作者: onefish    时间: 2016-9-5 22:53
#在这里快速回复#所以还是13条
作者: 406512228    时间: 2016-9-6 02:57
支持66666666666666666 我是菜鸟表示看不太懂
作者: 2881018    时间: 2016-9-7 09:18
支持开源~!感谢分享
作者: 沁园春2016    时间: 2016-9-7 11:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 简单メ传说    时间: 2016-9-7 11:44
支持开源,能再给个线程池的例子么。
作者: 梦里蝴蝶杨    时间: 2016-9-7 14:42
好东西,值得拥有,谢谢!
作者: 纯真少女    时间: 2016-9-7 21:07
好东西,值得拥有,谢谢!
作者: oaken    时间: 2016-9-9 10:02
好东西,值得拥有,谢谢!
作者: 蝎子走廊    时间: 2016-9-12 11:39
感谢分享,下载来学习
作者: ands11    时间: 2016-9-12 12:04

支持开源~!感谢分享
作者: a5661333    时间: 2016-9-13 17:30
试试看额。。。。
作者: oaken    时间: 2016-9-13 18:47
试试看额。。。。
作者: 发光发热    时间: 2016-9-15 09:51

作者: 发财猫小小    时间: 2016-9-15 20:21
#在这里快速回复#大神啊 必须下来看看
作者: h252444544    时间: 2016-9-16 02:21
感谢楼主分享源码
作者: justintan    时间: 2016-9-17 13:55
感谢楼主分享
作者: justintan    时间: 2016-9-17 13:56
谢谢分享,在学习中
作者: haoyun168    时间: 2016-9-19 18:26
#在这里快速回复#支持开源~!感谢分享
作者: 谁是谁?    时间: 2016-9-20 01:19
这个好!用到的时候再来下载
作者: ml9527    时间: 2016-9-20 17:26
这个好!用到的时候再来下载
作者: moshangchen108    时间: 2016-9-21 16:41
绝对收下,秒杀一切多线程方法。赞一个
作者: aboutboy    时间: 2016-9-21 16:49
下载研究研究
作者: xiaolewangluo    时间: 2016-9-22 18:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: ptw7600    时间: 2016-9-22 22:00
感谢开元。。。。。。。。。。。
作者: 泪无言    时间: 2016-9-22 23:19
感谢开元。。。。。。。。。。。
作者: csyswl    时间: 2016-9-23 08:39
好复杂的赶脚,完全看不懂、、、
作者: z0o0w    时间: 2016-9-23 17:46
多线程防崩溃防卡死
作者: xiao130yao020    时间: 2016-9-24 14:58
12表示13其实是个很吉利的数字,所以还是13条吧
作者: xiao130yao020    时间: 2016-9-24 15:05
好复杂的赶脚,完全看不懂、、et i 用不了
作者: sbnb2015    时间: 2016-9-24 22:41
真心好人,但还是非常期待你出一个视频教程,给我们菜鸟讲个明明白白的,谢谢
作者: 学无止尽    时间: 2016-9-24 23:43
不错不错,支持
作者: TotoroKing    时间: 2016-9-26 07:57
不错不错,支持
作者: Lucase    时间: 2016-9-26 10:28
下载学习学习  感谢分享
作者: sony09090    时间: 2016-9-26 22:32
非常需要
作者: french007    时间: 2016-9-27 07:51
你是最棒的
作者: 风里雨里    时间: 2016-9-27 07:52
终于找到学习例子了
作者: 达达尼昂    时间: 2016-9-27 10:20

作者: 爱在峡谷横跳    时间: 2016-9-27 10:44
收下了。感谢分享
作者: 福尔牌摩丝    时间: 2016-9-27 12:00
支持楼主.下了.有很详细的注释,虽然没取到昵称.不过思路是足够学习了
作者: 晓豪哟    时间: 2016-9-27 13:22
顶顶顶顶顶  希望多出一些教程
作者: 卡塞蒂    时间: 2016-9-28 14:35
好帖好帖,学习学习
作者: kj762    时间: 2016-9-28 17:21
楼主,附件压缩包损坏,希望楼主能重新发一下
作者: lshlsh007    时间: 2016-10-1 22:54
支持楼主~~!!!!~~
作者: 1636848518    时间: 2016-10-2 12:26
学习一下。好东西~!顶起
作者: ahhswl    时间: 2016-10-2 14:27

好帖好帖,学习学习
作者: ex621    时间: 2016-10-2 23:58
希望有时间出多线程视频教程  
作者: vimjay    时间: 2016-10-3 11:24
好东西收藏下
作者: zhang11966    时间: 2016-10-4 12:02
不错,给力
作者: 笑拥孤独    时间: 2016-10-8 20:51
学习一下。好东西~!顶起
作者: l7518597    时间: 2016-10-12 14:18
可以做成模块放出来不
作者: 星云散落    时间: 2016-10-14 19:34
学习一下下
作者: 希望在田野    时间: 2016-10-17 15:15
6666666666666666
作者: 13978295863啊    时间: 2016-10-17 21:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: bbb620    时间: 2016-10-19 03:19
XP运行没有反映呢

作者: 大雪里尿尿    时间: 2016-10-19 13:35
希望多多看到好东西
作者: 大雪里尿尿    时间: 2016-10-19 13:35
希望多多看到你的好东西
作者: ljm1101    时间: 2016-10-22 21:34

学习一下。好东西~
作者: lhabc    时间: 2016-10-24 17:50
寻找完美的多线程操作
作者: mytools    时间: 2016-10-27 04:19
寻找完美的多线程操作
作者: 婷宝吃的挺饱    时间: 2016-10-27 11:50
##6666666666666666666666666666666666666##
作者: Wm邪少    时间: 2016-11-7 11:15
你为什么要放个EXE进去= =傻逼360一直杀= =~
作者: 千山暮雪    时间: 2016-11-14 09:43
只有大神多写好的支持库,好的模块,我等小学生才能更好的运用易语言写出自己想要的程序。
作者: 秋海明月    时间: 2016-11-21 22:10
支持开源~!感谢分享
作者: sadamu9527    时间: 2016-11-22 22:16
谢谢,非常不错!
作者: dmkx1    时间: 2016-11-24 15:04
我很赞成!!!
作者: wyjhg555    时间: 2016-11-28 10:16

作者: love2010    时间: 2016-11-28 21:09
这个不错 非常感谢分享
作者: jaeson小乐    时间: 2016-12-3 19:26
感谢分享,大神
作者: 云上科技靓    时间: 2016-12-6 11:20
牛逼的技术
作者: 梦回青云    时间: 2016-12-7 14:29
谢谢,学习到了
作者: 易语言老米    时间: 2016-12-8 19:30
为毛你这个多线程在暂停的时候 点频繁了,点快了,或者时不时第一次点击的时候就会出现暂停不了,仍然继续运行的状况 ,我看了下 线程的挂起 和结束  都是一个格式的代码,为毛  结束就可以正确的执行 , 挂起却老出错额
作者: w20091    时间: 2016-12-13 10:16
我路过都顶了
作者: 小喽罗    时间: 2016-12-15 23:19
感谢分享源码
作者: mmdszcr    时间: 2016-12-22 17:21
谢谢,下载学习下

作者: 小磊網絡    时间: 2016-12-23 10:38
#在这里快速12表示13其实是个很吉利的数字,所以还是13条吧...回复#
作者: 昨天的你    时间: 2016-12-23 10:57
#在这里快速回复#所以还是13条吧
作者: adoniskinger    时间: 2016-12-24 22:45
必须承认流弊厉害生猛
作者: 草莓520    时间: 2016-12-25 17:09
我来看看这个线程有多真
作者: liantan    时间: 2016-12-30 16:22
好东西,正赶上要学习多线程
作者: 循环不计次    时间: 2016-12-31 19:22
好东西 马克
作者: 秋海明月    时间: 2017-1-1 19:55
学习一下。
作者: dong0945    时间: 2017-1-3 08:17
学习一下,感谢分享
作者: InstallTest    时间: 2017-1-5 10:05
模拟卡死测试




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4