Я смотрю на этот пример с сайта поддержки (в учебных целях):
https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp
В основном я добавил несколько потоков для запуска io_context.
Достигнутое мной поведение заключается в том, что несколько сокетов прослушивают сокет, каждый ждет работы и выполняет всю работу z, поэтому, если все мои потоки заняты выполнением работы, а другой клиент отправляет некоторый текст на сервер, он будет зависать до некоторого времени.поток снова будет доступен.
Я хочу, чтобы 1 поток прослушивал сокет и помещал в очередь всю работу, а пул потоков обрабатывал всю работу.
Если я правильно понимаю, я ненужно создать пул потоков в основном, но оставить его как есть только с основным потоком, чтобы принимать подключения и создать еще один io_context с пулом потоков на сервере и каким-то образом заставить все сеансы использовать этот пул, я не могу понять, как писатьthis.
Я также до сих пор не понимаю, как каждый сеанс знает, какой io_context он использует, если я не передаю его сеансу.