c++的非线程异步IO简介

Intro to non-threaded async IO for C++?

本文关键字:IO 简介 异步 线程 c++      更新时间:2023-10-16

我在一个由"UI开发人员"(我们)和"c++开发人员"(他们)组成的桌面应用程序团队工作。c++开发人员负责获取我们在UI中显示的所有数据,所以他们做所有的IO,数据库访问,web调用等。

最近我们遇到了IO阻塞UI线程的一些严重性能问题。当然,解决这个问题的方法是使IO异步。但是c++开发人员坚持这只能通过生成一个新线程来实现,而我们知道这是非常昂贵的。

我知道从Node.js等异步IO不需要涉及线程。我知道Win32,大概还有mac,确实有一个事件循环。但是,我不知道在c++领域中流行什么解决方案来执行异步非线程IO。(也许是libuv的底层节点?)。

谁能指出一些流行的库,或者更好的教程文章,这样我们就可以向我们的c++开发人员介绍这个概念?跨平台(PC和Mac)的加分项。如果有一个异步的非线程数据库解决方案,更多的好处是,因为我相信我们使用SQLite是我们许多问题的根源。

Boost异步I/O (asio)他们有一个很好的教程和几个例子。它是跨平台的