PB版线程池多线程DEMO

DEMO运行

线程任务为:随机挂起0~2000ms后返回,执行100次
线程池参数:核线程8,最大线程16,任务队列256,开始运行
在这里插入图片描述
运行结束,用时约13秒
在这里插入图片描述

将线程池的核线程增加到32,再次运行
在这里插入图片描述
运行结束,用时约4秒
在这里插入图片描述

开发接口

n_thread_runnable:线程执行接口,类似Java中的Runnable
事件 init(any param):实现子线程初始化代码
事件 run(any param , ref any retMsg):实现子线程执行代码

n_thread_pool:线程池,类似Java中的线程池
属性 integer coreThreadNum:核线程数,默认8
属性 integer maxThreadNum:最大线程数,默认16
属性 long queueSize:任务队列容量,默认256
属性 string runnableObject:线程执行接口(n_thread_runnable)的实现类名,必须设置
属性 string prefix:子线程实例名前缀,非必须
属性 any initParam:子线程初始化代码(init事件)的入参,非必须
方法 run(any param):投递参数给线程池,线程池将自动地异步调用子线程执行代码(run事件)
方法 setObserver(powerObject o):设置线程池的消息接收对象,线程运行过程中自动回调
方法 getThreadCount():获取线程数量
方法 getRunningCount():获取正在运行的线程数量

消息接收对象:任意的powerObject,调用线程池的setObserver方法注册给线程池
事件 thread_begin(string instanceName , any param):线程开始运通知,参数 param 为子线程接口 run 事件的参数
事件 thread_end(string instanceName , any retMsg):线程结束运行通知,参数 retMsg 为子线程接口 run 事件的参数
事件 thread_error(string instanceName , string errMsg):线程运行抛出异常通知,参数 errMsg 为异常信息

源代码

发现BUG请留言或私信,以便修正(QQ:768310524 TEL:18649713925)
代码基于PB12.5版本编写,需要低版本可联系本人,欢迎技术交流

链接:https://pan.baidu.com/s/1FcC9txeLwFPh9V4Rvsi0cg
提取码:xhqw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值