从boost
doc:boost :: asio :: io_service的concurrency_hint是什么意思?
io_service对象( 的std ::的size_t concurrency_hint);
构建一个关于所需并发级别的提示。参数
concurrency_hint有人建议的执行情况,应该多少 线程允许同时运行。
这是什么意思“对执行的建议”?
如果我用'2'构造对象,它可能只启动1个线程吗?
如果我有一个4核的CPU,并且我用'4'或'5'来构造对象会发生什么?
谢谢您的回答,请让我知道如果我猜中了: 所以'concurrency_hint'说线程队列的大小? 它并不涉及CPU内核的实际数量,只是说:“你可以在这个'io_service'中运行X个并发线程? – hudac
@hudac是。对于I/O完成端口,'concurrency_hint'集合线程队列的上限核心将是线程并行性的限制,但线程并发可以超过核心数量链接的I/O完成端口文档提供了对NumberOfConcurrentThreads值和线程池大小的推荐。 –
为什么它叫'concurrency_hint'而不是'concurrency'?看起来像提示是队列大小本身,不是? 你的答案会改变而不是I/O完成端口吗? 我的意思是,对于任何'boost :: asio :: io_service'其中包含套接字,文件描述符,事件fds,计时器fds ... – hudac