作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
根据文档,大多数 Asio 类都不是线程安全的。所以我想知道用户线程在异步操作中访问对象是否安全?
例如,如果套接字是异步连接:
asio::async_connect(socket, endpoint_iterator, handler);
我想会有一个 Asio 内部线程(例如运行 io_service.run()
)来在 socket
上做一些事情(不是吗?)。在 async_connect
完成之前调用 socket.close()
是否安全(例如超时)?它会与任何 Asio 内部线程竞争吗?
最佳答案
Asio 完全隐藏了系统相关线程(pthreads、windows 线程)。哪个线程正在处理您的代码并不重要,重要的是 ioservice。
不调用 ioservice.run() 根本不会执行任何异步代码。
希望对您有所帮助。
关于c++ - Asio 内部线程对用户透明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25250938/
我是一名优秀的程序员,十分优秀!