线程池需要一定形式的线程间通信来分配任务,这超出了基本线程功能的范畴。 考虑使用像ØMQ这样的东西,它提供具有ITC、IPC、TCP和PGM套接字的消息传递功能,并且全部使用相同的单个BSD套接字兼容API。其中一个ØMQ套接字类型实现了线程池类型功能,但可以扩展到多个主机上,因此提供了更高的可扩展性和灵活性。
在POSIX标准中,线程是通过pthread_create函数创建的:int pthread_create(pthread_t *thread_id, const pthread_attr_t * attr, void *(*start_routine)(void*), void *arg);为了实现线程池,我建议您使用pthread_create函数创建一组线程,一旦线程被创建,就使用计数信号量来管理线程分配。