精易论坛

标题: [2]超简单的多线程例子,新手可参考,大佬无视 [打印本页]

作者: 走路有点憨    时间: 2018-8-5 18:33
标题: [2]超简单的多线程例子,新手可参考,大佬无视
本帖最后由 万里禅天 于 2018-8-6 08:02 编辑

开始,暂停,恢复,销毁,线程数,许可证。调用精易模块6.4感谢楼下同学指正。欢迎发现bug



多线程例子.e (724.7 KB, 下载次数: 508)


补充内容 (2018-9-5 22:35):
请最开始按钮点击时加一条【许可证 = 创建进入许可证 ()】,忘了写,不创建就调用是无效的

补充内容 (2018-9-7 22:50):
修复版再往下拉一点就能看到!!
作者: 走路有点憨    时间: 2018-8-5 18:33

作者: 夜色没落    时间: 2018-8-5 18:46
本帖最后由 夜色没落 于 2018-8-5 18:47 编辑

一直都不太明白进入退出许可证的用处,什么代码需要加许可证完全不得要领

作者: 走路有点憨    时间: 2018-8-5 19:11
夜色没落 发表于 2018-8-5 18:46
一直都不太明白进入退出许可证的用处,什么代码需要加许可证完全不得要领

比如一个公共变量是 a=1    2个线程都是 计算   a=a+1,之间相隔1秒.

当第一个线程计算时  a=1+1   过了一秒、第二个线程计算后 a=2+1。

如果没有这个相隔1秒。几乎没有间隔,那么易语言就可能反应不过来,把2个线程就都是 a=1+1了  ,于是就错了。

所以一般多线程对公共变量加减,读写等操作,加上许可证,差不多就等于一个延时,让变量不会被很多线程同时操做。
作者: 夜色没落    时间: 2018-8-5 19:15
本帖最后由 夜色没落 于 2018-8-5 19:18 编辑
万里禅天 发表于 2018-8-5 19:11
比如一个公共变量是 a=1    2个线程都是 计算   a=a+1,之间相隔1秒.

当第一个线程计算时  a=1+1   过 ...

谢谢,那修改超级列表框为什么要加许可证,操作的并不是一个表项,还是上次多线程写出文件,文件名是固定的,写到1000行左右所有文本都变成了乱码,加上了取随机数1~10,等于于其中一个才写出,10%的机率,还是会那样 0 0,他们说加了许可证相当于单线程
作者: 胡八一    时间: 2018-8-5 19:22
多线程还是不会,下来学习
作者: 走路有点憨    时间: 2018-8-5 19:29
夜色没落 发表于 2018-8-5 19:15
谢谢,那修改超级列表框为什么要加许可证,操作的并不是一个表项,还是上次多线程写出文件,文件名是固定 ...

我认为。只在操作变量的时候加许可证,多线程还是多线程。相当于很多人干活,只是最后拿钱的时候一个个拿。拿钱按顺序排队的时间很短,短时间的排队并不影响多线程的干活。   

如果把许可证加到子线程的开头和结尾2头,把整个子线程都包括进去了才相当于单线程。   许可证只是把包含其中的代码变成单线程。   就像大家一起干活,最后虽然排队拿钱但也是多线程。 而非要一次只能上一个人,干完一部分拿钱后,再上另一个人干再拿钱,才是单线程。

别人说的也不一定准啊,自己试验一下写一下就懂啦
作者: longsui48    时间: 2018-8-5 20:08
很棒棒哦 给你个赞
作者: longsui48    时间: 2018-8-5 20:14
你这多线程是有问题的...
作者: 走路有点憨    时间: 2018-8-5 20:19
longsui48 发表于 2018-8-5 20:14
你这多线程是有问题的...

额 亲,哪里有问题呢
作者: 诺言55    时间: 2018-8-5 20:27
66666,,,来学习一下
作者: HeraLess    时间: 2018-8-5 20:28
今晚就你啦,朕的不二之选
作者: 走路有点憨    时间: 2018-8-5 20:32
本帖最后由 万里禅天 于 2018-8-5 22:16 编辑

源码也贴一下

作者: longsui48    时间: 2018-8-5 21:23
万里禅天 发表于 2018-8-5 20:19
额 亲,哪里有问题呢

你点开始 再按销毁 再按开始就出问题了
其实你是没记录一共执行了多少次 所以会出错
作者: 走路有点憨    时间: 2018-8-5 21:36
本帖最后由 万里禅天 于 2018-8-5 22:19 编辑
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程数量   
许可证   
批量线程ID整数型  

子程序名返回值类型公开备 注
_按钮1_被单击  
线程数量 = 0
超级列表框1.全部删除 ()
批量线程ID = 线程_启动 (&总线程)
子程序名返回值类型公开备 注
总线程  
变量名类 型静态数组备 注
n整数型 
计次循环首 (到整数 (编辑框3.内容), n)
判断循环首 (线程数量 ≥ 到整数 (编辑框1.内容))
程序_延时 (200)
判断循环尾 ()
启动线程 (&子线程, n, )
进入许可区 (许可证)
超级列表框1.插入表项 (, 到文本 (n), , , , )
线程数量 = 线程数量 + 1
退出许可区 (许可证)
计次循环尾 ()
子程序名返回值类型公开备 注
子线程  
参数名类 型参考可空数组备 注
索引 
变量名类 型静态数组备 注
页码m  
返回内容文本型 
置随机数种子 ()
页码m = 索引
程序_延时 (取随机数 (1000, 3000))
返回内容 = “这是第”到文本 (页码m)“页的内容”
进入许可区 (许可证)
超级列表框1.置标题 (索引 - 1, 1, 返回内容)
线程数量 = 线程数量 - 1
退出许可区 (许可证)
子程序名返回值类型公开备 注
_按钮2_被单击  
线程_挂起 (批量线程ID)
子程序名返回值类型公开备 注
_按钮3_被单击  
线程_恢复 (批量线程ID)
子程序名返回值类型公开备 注
_按钮4_被单击  
线程_销毁 (批量线程ID)
线程数量 = 0


i支持库列表   支持库注释   
iext扩展界面支持库一
EThread多线程支持库

多线程例子.e

724.7 KB, 下载次数: 8, 下载积分: 精币 -2 枚


作者: 夜色没落    时间: 2018-8-6 05:04
万里禅天 发表于 2018-8-5 19:29
我认为。只在操作变量的时候加许可证,多线程还是多线程。相当于很多人干活,只是最后拿钱的时候一个个拿 ...

谢谢指教,操作局部变量不需要加许可证的吧0 0
作者: 走路有点憨    时间: 2018-8-6 07:39
夜色没落 发表于 2018-8-6 05:04
谢谢指教,操作局部变量不需要加许可证的吧0 0

恩,我觉得局部一般不需要~
作者: qaq腾讯业务    时间: 2018-8-6 09:34
很好很强悍,坚持下去哦~
作者: jiaweiguang    时间: 2018-8-6 12:19
谢谢了 不错学习一下
作者: qgchqgch89    时间: 2018-8-6 13:26
这个看一下啦 学习一下
作者: kyo9766    时间: 2018-8-6 16:07
感谢分享,学习一下
作者: ss852    时间: 2018-8-7 21:27
学习学习!!!!!!!!!
作者: 幻源    时间: 2018-8-8 17:05
据说今天可以下载了附件了.
作者: 江湖人称小强    时间: 2018-8-8 18:07
学习一下!
作者: 想学易语言    时间: 2018-8-9 14:39
多谢了,学习一下多线程的知识。
作者: 想学易语言    时间: 2018-8-9 14:45
多谢了,了解了一点。
作者: 6622414    时间: 2018-8-10 15:07
萌新瑟瑟发抖
作者: 虎鲸    时间: 2018-8-13 00:14
感谢分享,学无涯,易友道
作者: qi562984326    时间: 2018-8-13 11:37

感谢分享,
作者: ltt199    时间: 2018-8-13 11:43
真是厉害了,哈哈哈
作者: Relieved    时间: 2018-8-14 00:28
真是厉害了,哈哈哈
作者: ayfun    时间: 2018-8-14 17:25
看看~!~!~!~
作者: zangchao    时间: 2018-8-15 11:23
学习学习,支持开源!
作者: lqyppp    时间: 2018-8-20 02:11
谢谢楼主了,学习一下
作者: yzwj666    时间: 2018-8-30 10:04
我也想看看
作者: 爱易达人    时间: 2018-8-30 10:44
上电脑时我也试试学习
作者: 走路有点憨    时间: 2018-9-7 22:49
修改加强版。修复了一些不足【2018.9.7】
多线程例子.e (827.41 KB, 下载次数: 100)
作者: yang205999125    时间: 2018-9-8 22:59

作者: yang205999125    时间: 2018-9-8 23:17

作者: tianxiayouzui    时间: 2018-9-25 14:11
好东西 6666666666666666666666666
作者: DMX369    时间: 2018-9-25 21:23
学习大佬的教材
作者: xfriend360    时间: 2018-12-5 16:24

学习学习,支持开源!
作者: macu    时间: 2019-1-18 11:34
正需要 学习学习  谢谢楼主
作者: michel    时间: 2019-2-6 21:47
谢谢了,收下去学习
作者: 新球不及    时间: 2019-3-5 03:15
谢谢分享谢谢分享
作者: bocunfeng    时间: 2019-3-11 09:14
我也正在学习多线程,下载一个试试效果
作者: kukechen    时间: 2019-3-18 15:55
学习多线程  很有用处!
作者: 13057568052    时间: 2019-3-20 09:53
最开始按钮点击时加一条【许可证 = 创建进入许可证 ()】,忘了写,不创建就调用是无效的
作者: spc0415    时间: 2019-5-1 17:34
多线程也是一个比较麻烦的
作者: 原味    时间: 2019-5-14 16:22
学习看看~学习看看~学习看看~
作者: 0312    时间: 2019-5-17 20:33
6666666666666
作者: 小清晰    时间: 2019-5-18 16:07
多谢分享  正在学习多线程
作者: 走路有点憨    时间: 2019-5-27 19:38
多线程例子修改版3.e (771.15 KB, 下载次数: 85)
作者: 小白c    时间: 2019-7-19 21:14
66666666666666
作者: nlxxbc    时间: 2022-1-2 11:36
看看了 谢谢
作者: 小清晰    时间: 2022-1-21 03:14
支持开源~!感谢分享
作者: 小清晰    时间: 2022-1-21 03:15
支持开源~!感谢分享
作者: xiaoshumiao1136    时间: 2022-7-3 22:39
谢谢分享
作者: 果儿    时间: 2022-7-21 14:40
谢谢分享
作者: djawei1990    时间: 2023-4-29 22:03
谢谢分享




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