c# - 如何确定自定义线程池的#threads?
问题描述
我正在编写一个具有固定数量线程的自定义线程池。这个线程池不会动态改变线程数。如何确定池的理想线程数?
我知道这通常是机器中#cores ( N*#Cores
) 的一个因素。有理想值N
吗?如果N
太低,则意味着如果线程阻塞在 IO 上并降低并行度(可以通过线程上下文切换同时进行的任务数),则 CPU 内核可能无法充分利用。如果N
太高,则线程将竞争 CPU,因此单个请求的延迟可能会增加。
解决方案
推荐阅读
- javascript - 如何使用 html 和 javascript 创建可拖动和可调整大小的 div
- scala - 为什么在 for 表达式中设置多个 val 不会导致异常?
- python - pyplot figure only updating after second call to ginput()
- sass - 媒体查询 scss 断点最佳实践
- c# - 如何在 PDFsharp 中将流转换为 PdfDocument
- virtualbox - VirtualBox 导入错误:代码 NS_ERROR_INVALID_ARG (0x80070057) - 参数值无效
- javascript - Angular 9 如何删除具有用户指定的索引范围的数组内的一系列对象?
- selenium - 使用 Selenium 的 POM 中 @By 和 @FindBy 之间的区别
- java - 无法关联 Kafka 请求 - 使用状态存储的响应
- javascript - 如何在 JS 中用 sinon 实现部分 subbing?