У меня есть несколько потоков, отвечающих за сеансы связи соответственно.
Каждый из них выполнит небольшой фрагмент кода, который просто скопирует структуру в очередь (одна очередь на один поток, для блокировки без блокировки), когда они получат некоторые данные.
Я не хочу, чтобы они были приостановлены во время запроса данных, чтобы я мог обеспечить некоторую согласованность сроков (сначала получил первый запрос), а также позволить как можно быстрее выполнить этот критический раздел (запрос).
Я знаю, что это можно разрешить с помощью блокировки и использования единой очереди для всех потоков, но я не хочу, чтобы некоторые из них были заблокированы в ожидании получения блокировки.
Есть ли способ в c ++ для решения этой проблемы?
Я использую gcc-8.2.0 и stl в коробке linux.
На самом деле я ожидаю метод, с помощью которого я могу определить «критическую секцию» кодов. Когда потоки выполняются внутри такого раздела, они никогда не будут приостановлены / заблокированы ОС.
Извините за мой плохой английский, надеюсь, я все правильно выразил.
Спасибо!