Зачем нам нужны 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();
Зачем использовать сложную асинхронную конструкцию с io_context, если можно написать всё структурно (как я это сделал выше) с помощью Future/promise и это будет читабельно и понятно?

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

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