Я работаю над модулем, который использует 10 очередей для обработки потоков, и каждая из них отправляет запросы curl, используя интерфейс curl_easy (вместе с Lock), чтобы; одиночное соединение поддерживается до тех пор, пока ответ не получен. Я хочу улучшить обработку запросов, используя интерфейс curl_multi, где запросы curl отправляются потоком и обрабатываются параллельно.
Я создал отдельный код для его реализации. Например, я создал 3 потока, которые обрабатываются один за другим, первый поток отправляет запрос curl_multi до тех пор, пока он не будет запущен, и существуют существующие передачи, которые распределяют ресурсы с использованием интерфейса curl_easy для каждой передачи.
Я рассмотрел много примеров, но не могу понять, как реализовать это в C ++. Кроме того, поскольку я недавно изучил концепции многопоточности и скручивания в C ++, мне нужна помощь с этим подходом.
Я ожидаю, что один поток сможет отправлять запросы curl до тех пор, пока пользователь не прекратит отправку.
Обновление - я добавил два потока, и каждый отправляет два запроса одновременно. curl_multi обрабатывается массивом дескрипторов для curl_easy.
Я хочу, чтобы он не содержал массивов, потому что это ограничивает количество запросов.
Может ли он быть сделан асинхронным и принимать все передачи и выходить только тогда, когда это делает клиент / пользователь. Примеров curl_multi достаточно, поэтому я не уверен в его реализации.