Зачем нам нужны async и io_context?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Зачем нам нужны async и io_context?

Сообщение Anonymous »

Я изучаю многопоточность и обнаружил, что предпочтительнее использовать async() с io_context. Но я не совсем понимаю, зачем они нужны. Я перечитал несколько документации и посмотрел много лекций на эту тему, но так и не смог понять, в чем разница, например, в этом коде:

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

boost::asio::io_context io;

io.post([](){
do_some_work()
});

std::thread thread([&io]() {
io.run();
});
из этого:

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

std::thread thread([&io]() {
do_some_work();
});
Я также видел много примеров использования io_context с async во взаимодействии клиент-сервер с так называемыми обработчиками. Но я просто не понимаю их смысла. Зачем они нужны, если можно просто писать методы подряд:

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

socket();
connect();
read();
handle();
Зачем использовать сложную конструкцию async с io_context, если можно написать всё структурно (как я сделал выше), используя Future/ и это будет читабельно и понятно?

Подробнее здесь: https://stackoverflow.com/questions/786 ... io-context
Ответить

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

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

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

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

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