开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 2644|回复: 17
收起左侧

[求助] 多线程大佬这边请,请教逻辑

[复制链接]
结帖率:100% (26/26)
发表于 2017-3-10 11:00:12 | 显示全部楼层 |阅读模式   浙江省杭州市
多线程批量注Ce的时候,想精确控制注Ce数量,又绝对不想TerminateThread,该怎么个逻辑呢?

我现在的做法是弄一些全局变量,每个代码片段都利用CAS判断一下。但说实话还是不精确(应该说是不敢精确),比如DX你收到了钱都扣了你总不能丢掉吧,于是这个时候就有可能超出数量,而且最严重的情况超出(线程数 - 1)个。

我还有个思路是:例如4线程,注Ce剩余数到4的时候,就开始逐渐收缩线程数,这样最后一个的时候只有一条线程,但具体实现又有点头痛,毕竟还要考虑时间。

有大佬有好的建议么?感谢


结帖率:100% (1/1)

签到天数: 13 天

发表于 2017-3-10 11:09:20 | 显示全部楼层   浙江省嘉兴市
起一条检测线程,如果设置的是4线程,那么检测当前注册数据是否小于总注册数量-4,如果小于4就创建一条注册线程,就不再创建,不过还要判断当前正在注册的线程数最多只能创建4条,这个你自己处理
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 13 天

发表于 2017-3-10 11:10:49 | 显示全部楼层   浙江省嘉兴市
漏了两字
。。。否则就不再创建。。。
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)
 楼主| 发表于 2017-3-10 11:15:59 | 显示全部楼层   浙江省杭州市
suger 发表于 2017-3-10 11:10
漏了两字
。。。否则就不再创建。。。

嗯  我明白你的意思   但我是用池化的思路来写的   不会重复创建线程   不喜欢那样
回复 支持 反对

使用道具 举报

结帖率:100% (25/25)

签到天数: 2 天

发表于 2017-3-10 12:11:44 | 显示全部楼层   广东省佛山市
junkboy 发表于 2017-3-10 11:15
嗯  我明白你的意思   但我是用池化的思路来写的   不会重复创建线程   不喜欢那样

上次你说道的 线程池 停止问题,我到现在还没想出来。。。

刚好又有需要,能说说你想出来的办法么==。

没帮你解决问题,还问你问题。。。感觉怪不好意思的。。。
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)
发表于 2017-3-10 12:13:42 | 显示全部楼层   香港特别行政区*
注册之前判断下已注册成功的数量,这边加通行证或者锁。线程到这边只会排队。
回复 支持 反对

使用道具 举报

结帖率:83% (39/47)

签到天数: 19 天

发表于 2017-3-10 12:15:37 | 显示全部楼层   福建省宁德市
你可以看我之前开源的刷英雄时刻源码,我是这样做的:
线程中判断的总数 = 总数 - 线程数量
然后,最终全部跳出循环后,当前处理完成的数量 绝对 < 总数
接着再开一条线程,一点点补充上去即可
回复 支持 反对

使用道具 举报

结帖率:83% (39/47)

签到天数: 19 天

发表于 2017-3-10 12:16:27 | 显示全部楼层   福建省宁德市
或者也可以这样(猜测):注册之前就增加注册总数(变量)比较好处理

点评

需要例子的话回帖   福建省宁德市  发表于 2017-3-10 12:16
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)
 楼主| 发表于 2017-3-10 12:25:15 | 显示全部楼层   浙江省杭州市
猥琐小胖子 发表于 2017-3-10 12:13
注册之前判断下已注册成功的数量,这边加通行证或者锁。线程到这边只会排队。

注册前判断是没用的   因为注册有几个流程   

初始化 → 发短X → 等待短X → 收到短X → 提交之前的一系列步骤 → 提交

现在的问题是收到之前判断是没有什么大问题的,但是只要收到了,出于成本考虑就不会再判断了而是一路放行,就会有可能不精确(尤其是【提交之前的一系列步骤】比较耗时的情景下)。所以我才考虑收缩线程数

补充内容 (2017-3-10 12:29):
整个代码段加锁的话又太暴力了。。。
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)
 楼主| 发表于 2017-3-10 12:26:48 | 显示全部楼层   浙江省杭州市
你凌哥i 发表于 2017-3-10 12:16
或者也可以这样(猜测):注册之前就增加注册总数(变量)比较好处理

注册之前就增加注册总数(变量)比较好处理

对的   我也用过这个思路  但是又觉得会影响速度    所以想寻找一个更好且安全的思路
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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