为什么人们应该在线程池中更喜欢std :: async或std :: thread?
基本上async是带有结果和启动策略的std :: thread,这意味着异步的性能无论如何都会放在池后面,因为线程创建真的很贵。
现在我很好奇,如果我非常频繁地启动任务,我是否应该使用异步而不是池? 对于长时间运行的任务,我明确地看到了优势,但对于小任务,我根本看不到asyncs的任何好处。
即使对于较大的任务,我也更可能使用更大的线程池并接受1或2个线程忙于一段固定的时间,因为我喜欢在一个点上拥有所有线程。
我一般不明白为什么没有std :: thread_pool实现,因为我没有太多理由为什么我应该在运行时启动线程(使用async ot std :: thread)如果我可以避免它完全由于产生新线程的成本。任何人都可以给我一个正确的理由,为什么我应该使用asyncs或为什么标准中没有线程池?