The following diagram is provided by boost asio documentation:

I understand that if I call the io_service::run method io_service::run (in two separate threads), I will have two threads for detecting events from the final event queue through the asynchronous event demultiplexer. I'm right?
More precisely, I doubt the achievement of parallelization by calling the io_service::run method io_service::run . For example, if you are dealing with a socket, if, for example, I have two sockets associated with the same io_service object , each socket method that calls socket.async_read_some method, does it include 2 registered callbacks (async_read_some method), can be convincingly called when io_service::run called twice.
source share