【发布时间】:2016-05-21 13:27:29
【问题描述】:
在什么情况下最好使用多个线程池而不是单个线程池?
我正在使用 the Microsoft threadpool 在 Windows 上进行开发,以处理文档所述的工作项:
Each process can create multiple isolated pools with different characteristics as necessary.
There is also a default pool for each process.
在最初的考虑中,似乎为进程拥有一个线程池是更可取的选择,这样当其他线程池中可能存在可用的未使用线程时,线程就不会被不必要地启动。
很明显,文档中提到的一个例外 - 当线程池需要不同的特性时。在确定是否应该使用多个线程池而不是单个默认池时,我还应该考虑哪些其他条件?
【问题讨论】:
-
这绝不是“最佳实践”。但是当你设计一个操作系统时,你永远不能假设每个编写在进程中运行的代码的人都认识彼此。如果这些代码块在不同时间需要一个池,那也不会错。如果只有你,那么选择是显而易见的:你有多少人。
标签: windows multithreading threadpool