线程池的创建思路如下所示:
- 用户程序向任务队列中添加任务。
- 创建线程池,线程睡眠,处于空闲状态
- 唤醒线程,线程池中的线程执行函数取出任务队列中的任务。
- 执行任务中心的调用函数,完成工作。
- 线程池任务执行完判断,如果没有程序调用,线程继续休眠。
- 调用销毁函数对线程池进行销毁。
示例工程
编译并运行,结果如下所示:
$ make && ./test thread start 0x9d8ad640 thread 0x9d8ad640 is waiting thread start 0x9d0ac640 thread 0x9d0ac640 is waiting thread start 0x9c8ab640 thread 0x9c8ab640 is waiting