Если вы являетесь внутренним пулом потоков, вызывающих любую из функций io_service::run(), io_service::run_one(), io_service::poll(), io_service::poll_one()
, и вашим обработчикам требуется доступ к общим ресурсам, вам все равно нужно позаботиться о том, чтобы как-то заблокировать эти общие ресурсы в самих обработчиках.
Учитывая ограниченный объем информации, размещенной в вопросе, я бы предположил, что это будет работать нормально с учетом вышеизложенного предостережения.
Однако при публикации есть некоторые измеримые издержки для настройки необходимых портов завершенияи ожидание - накладные расходы, которые вы могли бы избежать, используя другую реализацию своей «очереди».
Не зная точных деталей того, что вам нужно сделать, я бы посоветовал вам посмотреть на строительные блоки потоков для конвейеров или, возможно, проще для параллельной очереди .