来自angular-bootstrap typeahead:
io_service对象( std :: size_t concurrency_hint);
构造一个关于所需并发级别的提示。参数
concurrency_hint对实现的建议有多少 它应该允许同时运行的线程。
这是什么意思'对实施的建议'?
如果我使用' 2'构建对象,它可能只启动1个线程吗? 如果我有一个带有4个内核的CPU,我使用' 4'或' 5'来构造对象。会发生什么?
答案 0 :(得分:4)
并发提示允许底层实现根据应运行io_service
的并发线程数量做出选择。例如:
对于I / O完成端口,它设置完成端口的最大并发级别。并发提示作为NumberOfConcurrentThreads
的{{1}}参数提供。有关详细信息,请参阅I/O Completion Ports文档:
此值限制与完成端口关联的可运行线程的数量。当与完成端口关联的可运行线程的总数达到并发值时,系统会阻止与该完成端口关联的任何后续线程的执行,直到可运行线程的数量降至并发值以下。
设置为1时,优化实现以避免不必要的锁定。 Revision History注释:
在单线程用例中使用线程本地操作队列(即当
CreateIoCompletionPort()
为1时)以消除锁定/解锁对。