Подтвердить что ты не робот

Введение в не-threaded async IO для С++?

Я работаю над командой настольных приложений, состоящей из "разработчиков пользовательского интерфейса" (нас) и "разработчиков на С++" (их). Разработчики С++ отвечают за получение всех данных, отображаемых в пользовательском интерфейсе, поэтому они выполняют все операции ввода-вывода, доступа к базе данных, веб-звонков и т.д.

В последнее время мы столкнулись с серьезными проблемами с производительностью, когда IO блокирует поток пользовательского интерфейса. Конечно, решение этого заключается в том, чтобы сделать IO асинхронным. Но разработчики С++ настаивают, что это возможно только путем создания нового потока, который, как мы знаем, очень дорогой.

Я знаю из Node.js и т.д., что async IO не требует привлечения потоков. Я знаю, что Win32 и, предположительно, Macs, имеют цикл событий. Но я понятия не имею, какие решения распространены на С++ для использования async non-threaded IO. (Может быть, это вещь libuv, которая лежит в основе node?).

Может ли кто-нибудь указать на некоторые популярные библиотеки или, еще лучше, на учебные статьи, чтобы мы могли представить это понятие для наших разработчиков на С++? Бонусные очки для кросс-платформенных (ПК и Mac). Больше бонусных очков, если есть асинхронное решение без поточной базы данных, так как я считаю, что наше использование SQLite является источником многих наших проблем.

4b9b3361