我应该使用静态工作池还是动态工作池(线程)?

时间:2011-05-30 01:17:31

标签: c++ c multithreading pthreads

我正在运行一个非常好的pthreads程序,但是我没有看到我期望的加速。我怀疑我花了很多时间来创建和销毁我的线程。

我没有比我的cpus运行更多的线程。

在20分钟的时间内,我创建了大约5000个线程。

我的问题是,是否值得实施适当的静态工作池,以便我只分配静态数量的工作人员?

1 个答案:

答案 0 :(得分:1)

首先,您应该衡量您的应用花费所有时间的位置。每秒大约有4或5个线程创建,这很多但可能不是你花费所有时间的地方。

然而,如果你总是把自己限制在N个线程中,其中N是CPU的数量,那么你应该只是预先创建N个线程并使用一些算法安排在每个线程上运行的工作感觉你正在做的计算。