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