开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 2329|回复: 2
收起左侧

[易语言] 鱼刺线程池问题

[复制链接]
结帖率:46% (6/13)
发表于 2017-3-21 00:23:23 | 显示全部楼层 |阅读模式   安徽省蚌埠市
5精币
这个是论坛里的鱼刺模板,为什么使用5个线程查询100个目标号码,他会5个线程同时查询一个号码,然后就在5个线程查下一个号码,也就是说100目标,使用5个线程就要查询号码500次,不知道什么问题,按道理是5条线程同时查询5个号码,然后已次向下查询才对,谁能帮忙修改下



[e=4].版本 2
.支持库 iext

.子程序 _按钮_开始停止_被单击
.局部变量 text, 文本型
.局部变量 bool, 逻辑型
.局部变量 len, 整数型


集_计次s = 0
集_任务 = 真
集_任务完成 = 假
按钮_开始停止.禁止 = 真
text = 按钮_开始停止.标题
.判断开始 (text = “启动线程”)
    len = 超级列表框1.取表项数 ()
    .如果真 (len < 1)
        信息框 (“请先导入账号”, 48 + 65536, , )
        按钮_开始停止.禁止 = 假
        返回 ()
    .如果真结束

    连续赋值 (0, 已完成数量, 保证显示索引)
    bool = 线程.创建 (&工作)
    .如果真 (bool = 真)
        返回 ()
    .如果真结束

.判断 (text = “停止线程”)
    按钮_开始停止.标题 = “正在停止”
    按钮_暂停继续.禁止 = 真
    按钮_暂停继续.标题 = “暂停验证”
    线程池.销毁 (2, , 真)
    线程.等待2 ()
    按钮_开始停止.标题 = “启动线程”
.默认

.判断结束
按钮_开始停止.禁止 = 假


.子程序 工作
.局部变量 并发线程数, 整数型
.局部变量 bool, 逻辑型
.局部变量 len, 整数型
.局部变量 i, 整数型
.局部变量 空闲线程数, 整数型
.局部变量 int, 整数型
.局部变量 线程工作数, 整数型


按钮_开始停止.标题 = “正在启动”
临界.进入 ()
并发线程数 = 到整数 (编辑框线程.内容)
临界.退出 ()
.如果真 (并发线程数 < 1)
    并发线程数 = 1
.如果真结束
bool = 线程池.创建 (并发线程数)
.如果真 (bool = 假)
    临界.进入 ()
    按钮_开始停止.标题 = “启动线程”
    按钮_开始停止.禁止 = 假
    临界.退出 ()
    返回 ()
.如果真结束

临界.进入 ()
按钮_开始停止.标题 = “停止线程”
按钮_开始停止.禁止 = 假

按钮_暂停继续.标题 = “暂停线程”
按钮_暂停继续.禁止 = 假
len = 超级列表框1.取表项数 () - 1  ' 列表索引从0开始
临界.退出 ()
i = 0
.判断循环首 (i ≤ len)
    内存_优化1 ()
    空闲线程数 = 线程池.取_空闲线程数 ()
    .如果真 (空闲线程数 > 0)
        int = len - i + 1
        .如果真 (int > 空闲线程数)
            int = 空闲线程数
        .如果真结束
        .计次循环首 (int, )
            .如果真 (集_任务完成 = 真)  ' 表示没有目标号码查询,跳出循环
                跳出循环 ()
            .如果真结束
            内存_优化1 ()
            线程池.投递任务 (&Login, i, )
            i = i + 1
            线程工作数 = 线程工作数 + 1
            .如果真 (len + 1 ≠ 线程工作数)
                .判断循环首 (到整数 (编辑框_几次换IP.内容) > 0 且 线程工作数 = 到整数 (编辑框_几次换IP.内容))
                    处理事件 ()
                    .如果真 (IP已工作数 = 到整数 (编辑框_几次换IP.内容))
                        _按钮_拨号_被单击 ()
                        IP已工作数 = 0
                        线程工作数 = 0
                    .如果真结束

                .判断循环尾 ()
            .如果真结束
            程序_延时 (50)
            处理事件 ()
        .计次循环尾 ()
    .如果真结束
    bool = 线程池.等待任务动态 ()
    .如果真 (bool = 假)  ' 返回假 表示线程池被执行销毁 也表示用户手动点了停止
        返回 ()
    .如果真结束
    .如果真 (集_任务完成 = 真)  ' 表示没有目标号码查询,跳出循环
        跳出循环 ()
    .如果真结束

    处理事件 ()
.判断循环尾 ()

' 等待剩余任务执行完毕
.判断循环首 (线程池.取_是否空闲 () = 假)
    .如果真 (线程池.取_状态 () ≠ #线程池_正在工作)
        返回 ()
    .如果真结束
    bool = 线程池.等待任务动态 (100)
    处理事件 ()
.判断循环尾 ()


' 执行停止
临界.进入 ()
按钮_开始停止.禁止 = 真
按钮_开始停止.标题 = “正在停止”
按钮_暂停继续.禁止 = 真
按钮_暂停继续.标题 = “暂停线程”
临界.退出 ()
线程池.销毁 (2, , 真)

信息框 (“执行完毕!”, 64 + 65536, , )
临界.进入 ()
按钮_开始停止.标题 = “启动线程”
按钮_开始停止.禁止 = 假
临界.退出 ()


.子程序 Login
.参数 index, 整数型
.局部变量 正则, 正则表达式类
.局部变量 U, 账户
.局部变量 session, 文本型
.局部变量 文本, 文本型
.局部变量 i, 整数型
.局部变量 bool, 逻辑型


.如果真 (线程池.取_状态 () ≠ #线程池_正在工作)
    返回 ()
.如果真结束
临界.进入 ()
U.Num = 删首尾空 (超级列表框1.取标题 (index, 1))
U.Pwd = 删首尾空 (超级列表框1.取标题 (index, 2))
临界.退出 ()
超级列表框1.置标题 (index, 3, “开始执行”)
U.str = 登录QQ (U.Num, U.Pwd, U.Cookies, U.G_tk, U.nc)
.如果 (U.str = “登录成功”)
    超级列表框1.置标题 (index, 3, “登录成功”)
    超级列表框1.置标题 (index, 4, U.Cookies)
    Log (U.Num + “登录成功”)
    U.skey = 计算GetSkey (U.Cookies)
    U.G_tk = 计算GetG_tk (U.skey)
    超级列表框1.置标题 (index, 5, U.G_tk)
    查询 (index)
.否则
    超级列表框1.置标题 (index, 3, U.str)
    Log (U.Num + U.str)

.如果结束
原子_递增 (IP已工作数)
原子_递增 (已完成数量)

.子程序 查询
.参数 index, 整数型
.局部变量 A, 账户
.局部变量 S, 文本型
.局部变量 集_计次i, 整数型
.局部变量 c_计次s, 整数型

临界.进入 ()
A.Num = 删首尾空 (超级列表框1.取标题 (index, 1))
A.Cookies = 删首尾空 (超级列表框1.取标题 (index, 4))
A.LDW = 删首尾空 (超级列表框1.取标题 (index, 5))
超级列表框1.置标题 (index, 6, “查询中”)
临界.退出 ()
.循环判断首 ()
    内存_优化1 ()
    .如果真 (集_任务 = 假)  ' 表示手动停止,跳出循环
        跳出循环 ()
    .如果真结束
    A.目标 = 超级列表框2.取标题 (集_计次i, 1)
    超级列表框2.置标题 (集_计次i, 2, “搜索中”)
    A.str = 查询昵称 (A.目标, A.Cookies, A.LDW)
    临界.进入 ()
    .如果 (寻找文本 (A.str, #频繁, , 假) ≠ -1 或 寻找文本 (A.str, “


补充内容 (2017-3-21 12:57):
附件:下载地址链接:https://share.weiyun.com/1ecfc37bb07c7a5a108b4b3d3d93d0d8 (密码:cV2cNe)


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (20/20)
发表于 2017-3-21 00:33:48 | 显示全部楼层   菲律宾
直接上传附件吧
回复

使用道具 举报

结帖率:46% (6/13)
 楼主| 发表于 2017-3-21 01:03:36 | 显示全部楼层   安徽省蚌埠市
拉面 发表于 2017-3-21 00:33
直接上传附件吧

附件:下载地址链接:https://share.weiyun.com/1ecfc37bb07c7a5a108b4b3d3d93d0d8 (密码:cV2cNe)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

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

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

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