窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集1 | | | |
变量名 | 类 型 | 数组 | 备 注 |
线程池 | 鱼刺类_线程池 | |
临界 | 鱼刺类_临界许可 | |
已成功注册数量 | 整数型 | |
代理内容记忆 | 文本型 | |
代理数组 | 文本型 | 0 |
代理数量 | 整数型 | |
代理计次 | 整数型 | |
工作结束 () str = 按钮_启动停止.标题
判断 (str =
“启动”)
工作开始 ()
判断 (str =
“停止”)
工作结束 ()
_处理事件 ()返回 ()变量名 | 类 型 | 静态 | 数组 | 备 注 |
bool | 逻辑型 | | |
int | 整数型 | | |
并发线程数 | 整数型 | | |
需注册数量 | 整数型 | | |
已派发任务数 | 整数型 | | |
单条代理使用次数 | 整数型 | | |
代理派发计次 | 整数型 | | |
如果真 (线程池.
取_状态 () ≠ 0
)
返回 ()
按钮_启动停止.禁止 =
真 按钮_启动停止.标题 =
“正在启动”
如果真 (代理内容记忆 ≠ 编辑框_代理IP.内容
) 
代理内容记忆 = 编辑框_代理IP.内容

代理数组 =
分割文本 (代理内容记忆,
#换行符, )
代理数量 =
取数组成员数 (代理数组
)
如果真 (代理数量 < 1
)

按钮_启动停止.标题 =
“启动”

按钮_启动停止.禁止 = 假

返回 ()
代理计次 = 1
单条代理使用次数 = 到整数 (编辑框_单条代理使用次数.内容)
如果真 (单条代理使用次数 < 1
)
单条代理使用次数 = 1

并发线程数 =
到整数 (编辑框_并发线程数.内容
)
如果真 (并发线程数 < 1
)
并发线程数 = 1
如果真 (并发线程数 > 999
)
并发线程数 = 999
bool = 线程池.创建 (并发线程数)
如果真 (bool =
假) 
按钮_启动停止.标题 =
“启动”
按钮_启动停止.禁止 = 假
返回 ()
需注册数量 =
到整数 (编辑框_注册数量.内容
)
如果真 (需注册数量 < 1
)
需注册数量 = 1

按钮_启动停止.标题 =
“停止” 按钮_启动停止.禁止 = 假
已派发任务数 = 0
判断循环首 (已派发任务数 < 需注册数量
)
int = 线程池.
取_空闲线程数 () 
判断循环首 (int = 0
)

如果真 (线程池.
取_状态 () ≠ 1
) 

返回 ()
_延迟 (10)

int = 线程池.
取_空闲线程数 ()
判断循环尾 ()
计次循环首 (int,
) 


int =
打开内存文件 ()
写出文本 (int, 代理数组
[代理计次
])



线程池.
投递任务 (到整数 (&线程任务子程序
), 代理计次, int
)

已派发任务数 = 已派发任务数 + 1






代理派发计次 = 代理派发计次 + 1


如果真 (代理派发计次 ≥ 单条代理使用次数
)


代理派发计次 = 0



代理计次 = 代理计次 + 1



如果真 (代理计次 > 代理数量
)



代理计次 = 1






计次循环尾 ()
_处理事件 ()
判断循环尾 ()
判断循环首 (线程池.
取_是否空闲 () =
假)
如果真 (线程池.
取_状态 () ≠ 1
) 
返回 ()
_延迟 (10)
判断循环尾 ()工作结束 ()
如果真 (线程池.
取_状态 () ≠ 1
)
返回 () 按钮_启动停止.禁止 = 真按钮_启动停止.标题 =
“正在停止”线程池.
销毁 ()按钮_启动停止.标题 =
“启动”按钮_启动停止.禁止 = 假
|
线程任务子程序 | | |
|
代理传递方式_数组索引 | 整数型 | | | |
代理传递方式_内存文件 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
赶集 | reg_赶集 | | |
bool | 逻辑型 | | |
user | 文本型 | | |
pass | 文本型 | | |
Proxy | 文本型 | | |
str | 文本型 | | |
int | 整数型 | | |
判断 (代理传递方式_数组索引 > 0
且 代理传递方式_数组索引 ≤ 代理数量
)
Proxy = 代理数组
[代理传递方式_数组索引
]
判断 (代理传递方式_内存文件 ≠ 0
)
移到文件首 (代理传递方式_内存文件
)
Proxy =
读入文本 (代理传递方式_内存文件,
)
关闭文件 (代理传递方式_内存文件
)

如果真 (Proxy ≠
“”)
调试输出 (Proxy
)
赶集.
设置代理 (Proxy
)
bool = 赶集.
注册初始化 ()
如果真 (bool =
假 或 线程池.
取_状态 () ≠ 1
)
返回 ()
置随机数种子 ()user =
鱼刺文本_取随机字符数字串 (取随机数 (6, 12
))
pass =
鱼刺文本_取随机字符数字串 (取随机数 (8, 12
))
bool = 赶集.
提交注册 (user, pass
)
如果真 (bool =
假)
返回 ()
临界.
进入 () str =
到文本 (列表_陈功数据.
取表项数 () + 1
)int = 列表_陈功数据.
插入表项 (, str, , , ,
) 临界.
退出 () 列表_陈功数据.
置标题 (int, 1, user
) 列表_陈功数据.
置标题 (int, 2, pass
)原子_递增 (已成功注册数量
)标签_已注册数量.标题 =
“已注册数量:” +
到文本 (已成功注册数量
)返回 () int = 线程池.
取_状态 ()
判断 (int = 0
)
标签_线程池状态.标题 =
“线程池状态:未启动”
判断 (int = 1
)
标签_线程池状态.标题 =
“线程池状态:正在工作”
判断 (int = 2
)
标签_线程池状态.标题 =
“线程池状态:正在创建”
判断 (int = 3
)
标签_线程池状态.标题 =
“线程池状态:正在销毁”

int = 线程池.
取_线程池容量 ()标签_线程池容量.标题 =
“线程池容量:” +
到文本 (int
)int = 线程池.
取_执行线程数 ()标签_执行线程数.标题 =
“执行线程数:” +
到文本 (int
)int = 线程池.
取_空闲线程数 ()标签_空闲线程数.标题 =
“空闲线程数:” +
到文本 (int
)int = 线程池.
取_队列任务数 ()标签_队列任务数.标题 =
“队列任务数:” +
到文本 (int
)