Следующая схема приходят из подталкивание ASIO документации:Каково влияние вызова io_service :: запустить метод дважды
Я понимаю, что если я называю io_service::run
метод дважды (в двух отдельных потоках), я будет иметь два потока для детекции событий от завершения очереди событий через асинхронный демультиплексор событий, верно?
Точнее, я сомневаюсь в достижении параллелилизации путем множественного вызова метода io_service::run
. Например, при работе с сокетом, если, например, у меня есть два сокета, связанных на одном io_service object
, каждый сокет, вызывающий метод socket.async_read_some
, включает ли он два зарегистрированных обратных вызова (через метод async_read_some), которые можно вызвать при вызове io_service::run
дважды.
Вы понимаете это правильно. Вот полезная ссылка, которая подробно объясняет это: http://theboostcpplibraries.com/boost.asio-scalability –