开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 796|回复: 6
收起左侧

[求助] 取区间值

[复制链接]
结帖率:100% (4/4)
发表于 2022-4-2 03:39:59 | 显示全部楼层 |阅读模式   山西省临汾市
大佬们 我想要一个多线程的例子 想法如下
例:  577000000-578000000 这个区间为100万个数字
同时 排除577123000-577456000 这个区间的数字
最后 生成一个数组存取所有数组 这个有没有大佬能给个多线程例子 有例子的话秒设置为最佳答案

结帖率:100% (18/18)

签到天数: 25 天

发表于 2022-4-2 04:13:08 | 显示全部楼层   福建省泉州市
577000000-578000000 这个区间为100万个数字
同时 排除577123000-577456000 这个区间的数字
那么    可以定义两个区间   577000000-577123000和577456000-578000000
转换一下    0~1230000和456000~1000000两个区间   取值    然后加上577000000
两个区间取随机数的话     先 取随机数(1,2),决定哪个区间,然后使用那个区间取数
每个线程规定取多少个数,先存到临时数组,线程取满数量后    进入许可区   将取到的数加入到目标数组
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 2 天

 楼主| 发表于 2022-4-2 04:21:08 | 显示全部楼层   山西省临汾市
一路生花 发表于 2022-4-2 04:13
577000000-578000000 这个区间为100万个数字
同时 排除577123000-577456000 这个区间的数字
那么    可以定 ...

已经解决了  有个大佬给了个例子  我虽然看不懂 但是CV之后可以使用=。=

点评

妙啊   福建省泉州市  发表于 2022-4-2 04:22
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 2 天

 楼主| 发表于 2022-4-2 04:23:07 | 显示全部楼层   山西省临汾市
  
子程序名返回值类型公开备 注
生成数据  
变量名类 型静态数组备 注
数字范围文本型 
临时数组文本型0
i整数型 
排序临时文本型 
范围数组文本型0
t整数型 
清除数组 (集_范围组)
t = 取启动时间 ()
数字范围 = 文本_替换 (_启动窗口.编辑框_数字范围.内容 + #换行符文本_删除空行 (_启动窗口.编辑框_过滤数字范围.内容), , , , #换行符, “-”, , , , , , , , )
临时数组 = 分割文本 (数字范围, “-”, )
日志输出 (“预分割完成,共”到文本 (取数组成员数 (临时数组)) + “段。”)
数组_排序1 (临时数组, )
i = 取数组成员数 (临时数组)
日志输出 (“预分配线程任务数!”)
如果真 (数组_去重复 (临时数组, ) ≠ i)
日志输出 (“参数错误!”)
信息框Ex (“数字范围内数字与过滤范围内数字不可重复!”)
返回 ()
计次循环首 (取数组成员数 (临时数组), i)
如果真 (i % 2 ≠ 0)
排序临时 = 临时数组 [i]
如果真 (i % 2 = 0)
排序临时 = 排序临时 + “-” + 临时数组 [i]
如果真 (寻找文本 (排序临时, “-”, , ) > -1)
加入成员 (范围数组, 排序临时)

计次循环尾 ()
计次循环首 (取数组成员数 (范围数组), i)
如果真 (到整数 (文本_取右边 (范围数组 [i], “-”, , , )) - 到整数 (文本_取左边 (范围数组 [i], “-”, , , )) ≤ 50000)
加入成员 (集_范围组, 范围数组 [i])
到循环尾 ()
如果真 (到整数 (文本_取右边 (范围数组 [i], “-”, , , )) - 到整数 (文本_取左边 (范围数组 [i], “-”, , , )) > 50000)
拆分范围 (范围数组 [i], 集_范围组)

计次循环尾 ()
日志输出 (“开始投递任务,任务数:”到文本 (取数组成员数 (集_范围组)))
线程池.创建 (取数组成员数 (集_范围组), , )
计次循环首 (取数组成员数 (集_范围组), i)
线程池.投递任务 (&生成数组, i, )
延迟 (1)
计次循环尾 ()
日志输出 (“任务投递完成,等待线程处理完成。”)
循环判断首 ()
延时 (668)
循环判断尾 (线程池.取_是否空闲 ())
线程池.销毁 (, , )
日志输出 (“生成完成,共生成”到文本 (取数组成员数 (全_数据信息数组)) + “条,共耗时”到文本 ( (取启动时间 () - t) ÷ 1000)“秒。”)
_启动窗口.按钮_生成数据.禁止 = 假
子程序名返回值类型公开备 注
拆分范围  
参数名类 型参考可空数组备 注
范围文本型
范围数组文本型
变量名类 型静态数组备 注
起始数文本型 
拆分大小整数型 
终止数文本型 
范围组文本型0
i整数型 
临时数文本型 
t整数型 
t = 取启动时间 ()
拆分大小 = 1000
起始数 = 文本_取左边 (范围, “-”, , , )
终止数 = 文本_取右边 (范围, “-”, , , )
临时数 = 起始数
循环判断首 ()
如果真 (到整数 (临时数) + 拆分大小 > 到整数 (终止数))
加入成员 (范围组, 临时数 + “-” + 终止数)
跳出循环 ()
加入成员 (范围组, 临时数 + “-”到文本 (到整数 (临时数) + 拆分大小))
临时数 = 到文本 (到整数 (临时数) + 拆分大小)
循环判断尾 (i = 0)
加入成员 (范围数组, 范围组)
子程序名返回值类型公开备 注
生成数组  
参数名类 型参考可空数组备 注
范围下标整数型
变量名类 型静态数组备 注
起始数文本型 
终止数文本型 
数字组文本型0
i  
起始数 = 文本_取左边 (集_范围组 [范围下标], “-”, , , )
终止数 = 文本_取右边 (集_范围组 [范围下标], “-”, , , )
计次循环首 (到整数 (终止数)到整数 (起始数), i)
加入成员 (数字组, 文本_自动补零 (到文本 (到整数 (起始数) + i), 9))
计次循环尾 ()
_进入许可区 (全_线程同步句柄)
加入成员 (全_数据信息数组, 数字组)
_退出许可区 (全_线程同步句柄)


i支持库列表   支持库注释   
spec特殊功能支持库

回复 支持 反对

使用道具 举报

结帖率:87% (20/23)

签到天数: 17 天

发表于 2022-4-2 10:37:17 | 显示全部楼层   四川省巴中市
不用多线程吧? 也就1秒多一点就搞定,只要方式用对
123.png
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 2 天

 楼主| 发表于 2022-4-3 03:59:13 | 显示全部楼层   山西省临汾市
汉族 发表于 2022-4-2 10:37
不用多线程吧? 也就1秒多一点就搞定,只要方式用对

宝~ 我1001线程生成100万数据都要11秒多啦 怎么可能一秒就生成一百万数据嘞 而且我想要的是多线程 已经自己解决了
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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