|
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) |
|