Я изучаю многопоточность и обнаружил, что предпочтительнее использовать 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 во взаимодействии клиент-сервер с так называемыми обработчиками. Но я просто не понимаю их смысла. Зачем они нужны, если можно просто писать методы подряд:
Зачем использовать сложную конструкцию async с io_context, если можно написать всё структурно (как я сделал выше), используя Future/
и это будет читабельно и понятно?
Подробнее здесь:
https://stackoverflow.com/questions/786 ... io-context