從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