【发布时间】:2017-07-24 20:15:05
【问题描述】:
如果我向线程池提交了一个工作并且线程已经在 boost 中工作,会发生什么?
我看过这个主题 (How to create a thread pool using boost in C++?),它解释了如何创建池。
我也发现了这个话题(https://stackoverflow.com/a/12267138/7108553)
如果我将作业分配给池并且所有线程都在工作 然后该作业被丢弃。
我的问题是,如果我以与此类似的方式创建池 (How to create a thread pool using boost in C++?),是否会出现这种情况?
我的理解是,如果我将作业分配给池并且所有线程都已经在工作,那么这将由库在内部处理,一旦线程完成,作业就会分配给它..这是正确的吗?
如果没有,是否有一种有效的方法来跟踪空闲和占用的线程?
【问题讨论】:
-
取决于线程池的设计。您必须阅读您选择使用的实现的文档。排队添加工作是最常见的方法,但我可以看到线程池的用途,该线程池在所有线程都在使用时丢弃..
-
其实我做了,但具体点不清楚。
标签: c++ multithreading c++11 boost