Мой код вызывает тупик? Я не уверен. Может ли кто-нибудь подтвердить или опровергнуть?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Мой код вызывает тупик? Я не уверен. Может ли кто-нибудь подтвердить или опровергнуть?

Сообщение Anonymous »

Для нового проекта на моей новой работе технический руководитель и архитектор попросили меня изучить и использовать boost::asio. В частности, класс thread_pool библиотеки.
Позвольте мне рассмотреть ситуацию в контексте.
Мы создаем приложение, которое будет выполнять сложные вычисления. Пользователь отправляет XML в качестве входных данных со всеми необходимыми нам данными, и проект, который я разрабатываю, должен принять этот XML, получить всю необходимую информацию, а затем запустить и выполнить ряд вычислений. Наконец, результат должен быть отправлен обратно пользователю. Все это делается асинхронно.
Теперь архитектор хочет, чтобы проект представлял собой микросервис, принимающий запросы от пользователей.
И чтобы выполнить как можно больше вычислений, у нас должен быть пул потоков калькуляторов.
Каждый поток будет копаться в очереди запросов пользователей. Произвести расчет, вернуть результат и если очередь не пуста, то принять следующий запрос. Для этого был выбран Boost Asio. Итак, мой вопрос действительно касается Boost Asio. Мы не собираемся менять инструмент.
Boost asio содержит класс thread_pool, который, судя по всему, предназначен для решения подобных проблем.
Я все еще в начале пути. и я попытался посмотреть, как это работает. К сожалению, даже этот простой код, который я написал сегодня, похоже, не всегда работает. Иногда работает, иногда зависает и ничего не происходит....что для меня является признаком тупика. Я не уверен.
Не могли бы вы сказать мне, в чем проблема?
С уважением,

Код: Выделить всё

#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 

int main()
{
boost::asio::thread_pool pool{5};
std::mutex mutex;

for(int i = 0; i < 5; ++i)
{
boost::asio::post(pool, [i, &mutex]() {
try
{
std::lock_guard lg{mutex};
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79131654/is-my-code-causing-deadlock-im-not-sure-could-someone-confirm-or-disconfirm[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Что вызывает тупик в MySQL?
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Семафор вызывает тупик в WPF
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Семафор вызывает тупик в WPF
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Семафор вызывает тупик в WPF
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Почему не использует EDT, вызывает тупик?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»