c++的非线程异步IO简介
Intro to non-threaded async IO for C++?
我在一个由"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)他们有一个很好的教程和几个例子。它是跨平台的
相关文章:
- Seg Fault Issue C++ (file IO / getline)
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 为什么在读取文件大小时文件IO速度会发生变化
- Agora.io 虚幻引擎插件构建错误
- 不将数据 socket.io c++(客户端)发送到 nodejs(服务器)socket.io
- ASIO signal_set多个 IO 线程不可靠,具体取决于代码顺序?
- 通过 Tor 服务C++ socket.io 客户端
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 如何读取 google::p rotobuf::io::CodedOutputStream::WriteVarint32
- Conan.io 在编译步骤中或已经在签出时
- C++中真正的异步文件 IO
- 在C++中返回 IO 对象的目的是什么?
- 使用 Broadcast 发出的从节点服务器发送的数据不能被 C++ 套接字 IO 客户端读取
- C++网络 IO、文件处理和网络故障
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- Android Studio-在现有的旧项目中启用本机C++调试(card.io Android Source)
- 如何检测函数是否执行IO操作
- 如何键入用于const对象的自定义io操纵器
- libevent是否允许在不同的线程中运行timer/io的回调
- c++的非线程异步IO简介