【发布时间】:2010-12-31 06:24:32
【问题描述】:
pthread 库是否包含线程池实现?或者是否有人们使用的常用库/
【问题讨论】:
标签: linux multithreading pthreads
pthread 库是否包含线程池实现?或者是否有人们使用的常用库/
【问题讨论】:
标签: linux multithreading pthreads
克拉克森大学的珍娜·马修斯 (Jeanna Matthews) 拥有 very nice implementation。你为什么不看看?它遵循标准的线程池模式。
【讨论】:
线程池需要某种形式的线程间通信来调度超出基本线程功能范围的任务。
考虑像ØMQ 这样的东西,它通过 ITC、IPC、TCP 和 PGM 套接字提供消息传递功能,所有这些都使用相同的单个 BSD 套接字兼容 API。其中一种 ØMQ 套接字类型实现了线程池类型的功能,但可以在多个主机上进行扩展,因此提供了显着更高的可扩展性和灵活性。
【讨论】:
虽然有很多其他人的库可以通过 Google 找到,但没有官方的 pthread 线程池库。
【讨论】:
在 POSIX 中,标准线程是使用 pthread_create 函数创建的:
int pthread_create(pthread_t *thread_id,
const pthread_attr_t * attr,
void *(*start_routine)(void*), void *arg);
为了实现线程池,我建议你用pthread_create函数创建一堆线程,一旦创建线程然后使用计数semaphore。管理线程分配。
【讨论】: