阿正 发表于 2017-3-24 13:22:44

读学易语言第八章|阿正_多线程的完美写法

读学易语言第八章 | 阿正


多线程的完美写法





本章适用于有一定易语言基础想发展学习POST方面的人

阅读,文章根据个人学习经验所写,如果有错误请指出。


QQ交流群:308780188


阿正QQ:964269020


公众号:阿正易语言


博客: www.eyuyan.vip


前面卖了两章的关子,现在我们就来看看如何达到完美的控制,由于逻辑性比

较强,我解释起来也不好解释,所以以贴图为主,然后代码后面我会加上注释给大

家看每一行命令的由来,作用等。


. 这是总控制线程里面的初始化数据操作,这个不需要讲解的。大家都明白,





https://docs.zoho.com.cn/writer/image.do?imgurl=60c55005f04ed37632305f71b7e9afae3fd45a483c18d082be8ab0d0638f329cd16dcff1dca3c87b26ba3191368ca611










































我们可以看出和上一章的不同了,上一章我们提出了许多问题,关于线程关闭时间

的判断和合理性。

https://docs.zoho.com.cn/writer/image.do?imgurl=60c55005f04ed37632305f71b7e9afae3fd45a483c18d082be8ab0d0638f329c4c3faa0e5181d0cbe1fb2ccaaf22eb0e

其实道理很简单,就是把之前强制等待时间分开,采用 强制等待时间=小延迟

时间 x 检测次数


我们采用“局_计次”来表示检测次数,由于单次等待的时间是一样的,所以我们

通过 局_计次x单次时间就可以判断是否超时。如果超时就直接结束线程,并且在当

前启动数这里减一。


如果在没有达到计次的上限,但是线程结束,我们也需要结束线程。减去当前

启动数一。





这样做的好处就是,细化线程单次控制时间,由于缩小了单次的判断时间,就可以

减少由于大量线程等待造成的时间的占用,同时也能达到“始终有指定线程数在运行”

,而不是“启动指定线程,等所有线程完毕后再开始”的效果。经过我的一次测试,修

改后的软件速度提升了大约30%(具体你们可以自己试试,我工作线程里面是有一个

网页访问。)








多线程源码我会上传到我的群里面,欢迎各位加群下载。





多线程安全使用手册:-----


记得关闭线程句柄


线程里面要是有涉及到正则、js、json相关操作,记得一定要线程初始化com,

不然会崩溃


其实信号量类型多线程更加值得推荐,各位可以去好好研究。


线程里面的许可区不要加太多,只要关键部位加入就好,千万不要工作线程头

部一个进入,尾部一个退出,这样和单线程就没有区别了,也不要一行一个进入、

退出,这样也没卵用,只会更加的拖慢程序运行。


多线程模版自己写一套,留着就好。需要使用的时候拿过来套上去就好了。写

多了,你就会发现你的适合的模版越来越多。


写多线程一定要最大程度的代码模块化,这样你就可以更好的去镶嵌代码,整

理代码。


拨号换IP这个操作,看个人需求,可以添加在结束线程的时候,然后进入许可区

,一个循环判断一直等待到拨号完毕。


多线程按照各种功能,每个人应该至少具备3种以上的多线程模版。


欢迎各位加入交流群、对我打赏。


https://docs.zoho.com.cn/writer/image.do?imgurl=60c55005f04ed37632305f71b7e9afae3fd45a483c18d082be8ab0d0638f329c1d1a96db91c01c4d5bd3415719488f17







不依Baya 发表于 2017-3-24 14:09:37

太棒了,感谢楼主,Mrak一下

艾鱼 发表于 2017-3-25 00:35:16

太棒了,感谢楼主,Mrak一下

yuaotian 发表于 2017-3-25 10:08:08

拿分走人呵呵,楼下继续!

tony2526 发表于 2018-5-6 01:56:12

很不错哦,谢谢楼主分享

263432023 发表于 2018-12-29 01:11:02

太棒了,感谢楼主,Mrak一下

x1252 发表于 2020-5-17 08:56:50

感谢楼主,学习了

qyitzrqs 发表于 2020-10-15 16:18:13

感谢楼主~!
页: [1]
查看完整版本: 读学易语言第八章|阿正_多线程的完美写法