HPsocket

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 196|回复: 0

线程池事件

[复制链接]
发表于 2022-3-30 11:07:12 | 显示全部楼层 |阅读模式
hpsocket线程池事件HP在5.8.7版本中增加了线程池回调事件,
启动线程池
BOOL Start(dwThreadCount = 0, dwMaxQueueSize = 0, enRejectedPolicy = TRP_CALL_FAIL, dwStackSize =
0)
✓     dwThreadCount    线程数量,(默认:0)
>0  :dwThreadCount
=0  :(CPU 核数 * 2 + 2)
<0  :(CPU 核数 * (-dwThreadCount))
✓     dwMaxQueueSize    任务队列最大容量(默认:0,不限制)
✓     enRejectedPolicy    任务拒绝处理策略
TRP_CALL_FAIL       :(默认)立刻返回失败
TRP_WAIT_FOR        :等待(直到成功、超时或线程池关闭等原因导致失败)
TRP_CALLER_RUN  :调用者线程直接执行
✓     dwStackSize    线程堆栈空间大小(默认:0 ->  操作系统默认)
   关闭线程池
在规定时间内关闭线程池组件,如果工作线程在最大等待时间内未能正常关闭,会尝试强制关闭,这种情况下很可能会造成系统资源泄漏。
BOOL Stop(dwMaxWait = INFINITE)
✓     dwMaxWait    最大等待时间(毫秒,默认:INFINITE,一直等待)
   提交任务
BOOL Submit(fnTaskProc, pvArg, dwMaxWait = INFINITE)
✓     fnTaskProc    任务处理函数
✓     pvArg    任务参数
✓     dwMaxWait    任务提交最大等待时间(毫秒,仅对 TRP_WAIT_FOR 类型线程池生效,默认:INFINITE,一直等待)。
**  SYS_GetLastError()  错误码 ERROR_DESTINATION_ELEMENT_FULL  表示任务队列已满。
   提交 Socket 任务
BOOL Submit(pTask, dwMaxWait = INFINITE)
✓     pTask    任务参数
✓     dwMaxWait    任务提交最大等待时间(毫秒,仅对 TRP_WAIT_FOR 类型线程池生效,默认:INFINITE,一直等待)
**  SYS_GetLastError()  错误码 ERROR_DESTINATION_ELEMENT_FULL  表示任务队列已满。
注意:pTask 由 HP_Create_SocketTaskObj( )函数创建,当 Submit(pTask)提交成功时线程池负责自动销毁 pTask   对象;
当提交失败时应用程序需要手工调用 HP_Destroy_SocketTaskObj( )销毁 pTask 对象。
   动态调整线程池大小
BOOL AdjustThreadCount(dwNewThreadCount)
✓     dwNewThreadCount    线程数量
>0  :dwNewThreadCount
=0  :(CPU 核数 * 2 + 2)
<0  :(CPU 核数 * (-dwNewThreadCount))
6.2 监听器事件
HP-Socket v5.8.5 版本开始,提供了线程池监听器接口 IHPThreadPoolListener,线程池组件可以绑定监听器处理以下生命周期事件:
    线程池启动事件
void OnStartup(pThreadPool)
✓      pThredPool       --  事件源对象
    线程池关闭事件
void OnShutdown(pThreadPool)
✓      pThreadPool       --  事件源对象
    工作线程启动事件(每个工作线程触发一次)
void OnWorkerThreadStart(pThreadPool, dwThreadID)
✓      pThreadPool       --  事件源对象
✓      dwThreadID        --  工作线程 ID
    工作线程退出事件(每个工作线程触发一次)
void OnWorkerThreadEnd(pThreadPool, dwThreadID)
✓      pThreadPool       --  事件源对象
✓      dwThreadID        --  工作线程 ID


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

本版积分规则

QQ|Archiver|手机版|小黑屋|HPsocket-国产高性能通讯框架 ( 豫ICP备19038015号-1 )|网站地图 *//

GMT+8, 2022-12-1 02:20 , Processed in 0.153982 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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