| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /************************************************************************
- * AUTHOR: NiuJiuRu
- * FILENAME: swthrdpool.h
- * CONTENT: 线程池
- * NOTE:
- * HISTORY:
- * 1, [2010-09-20] created by NiuJiuRu
- * 2, [2018-03-23] add "sw_thrdpool_create2()" function and redefine
- * "sw_thrdpool_create()" function
- ***********************************************************************/
- #ifndef __SWTHRDPOOL_H__
- #define __SWTHRDPOOL_H__
- #include "swthrd.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /* 创建线程池 */
- void *sw_thrdpool_create2(int max, int priority, int stack_size);
- #define sw_thrdpool_create(max) \
- sw_thrdpool_create2(max, THREAD_DEFAULT_PRIORITY, THREAD_DEFAULT_STACK_SIZE)
- /* 销毁线程池, 超时前尝试安全的销毁, 超时后则强制销毁 */
- void sw_thrdpool_destroy(void *hPool, int timeout);
- /* 从线程池中分配一个线程, 成功后得到的线程默认处于暂停状态 */
- void *sw_thrdpool_alloc(void *hPool, PThrdProc proc, unsigned long wParam, unsigned long lParam, int timeout);
- /* 从线程池中释放一个线程, 超时前尝试安全的关闭线程, 超时后则强制关闭线程 */
- void sw_thrdpool_free(void *hPool, void *hThrd, int timeout);
- /* 获取线程池当前的线程分配情况 */
- void sw_thrdpool_get_status(void *hPool, int *max_num, int *alloc_num, int *idle_num, int *sick_num, int *killed_num);
- /* 打印线程池当前的线程分配情况 */
- void sw_thrdpool_printf(void *hPool);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __SWTHRDPOOL_H__ */
|