Я разрабатываю сетевой сервер на основе Boost :: Asio.Блокировка Boost Asio Рабочие темы
У меня есть boost::thread_group
рабочих потоков ввода-вывода, которые я использую, чтобы позвонить boost::asio::io_service::run()
Когда сетевой активности происходит ASIO использует один из этих рабочих потоков для обработки активности (например, принимать или прием).
Мое приложение затем выполняет некоторую работу, возможно, некоторые вычисления, возможно, некоторые другие IO (через boost) и, возможно, некоторые действия с базой данных.
Я хотел бы знать, что подразумевает выполнение указанной работы в этих потоках. В частности:
- ли проведение (возможно, значительную работу) на резьбе IO вызывают в
io_service
любое горе?
И менее конкретно: любые другие вопросы, о которых я должен думать.
Непонятно, что вы имеете в виду, перейдя в «boost :: asio» из рабочего потока. Я ожидал бы, что все рабочие потоки добавят дополнительную работу в 'io_service', иначе цикл обработки событий (' io_service :: run() ') завершится. –
@ Сэм, спасибо. Думаю, я, наверное, слишком беспокоюсь об этом конкретном вопросе. Я отредактирую вопрос. Я думаю, что я действительно беспокоюсь о том, что слишком много работы внутри рабочих потоков. – Nick