如果我向线程池提交了一个工作并且线程已经在boost中工作,会发生什么?如果我将工作发布到线程池并且线程已在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++?)?
我的理解是,如果我将作业分配给池并且所有线程都已经工作,那么这将由库在内部处理,并且一旦线程完成,那么作业被分配给它..这是正确的吗?
如果没有,是否有一种有效的方式来跟踪自由和占用的线程?
这取决于线程池的设计。您必须阅读您选择使用的实施的文档。排队添加工作是最常见的方法,但我可以看到在所有线程都在使用时丢弃的线程池的用法。 –
其实我做了,但在那个特定点上并不清楚。 – user7631183