gpt4 book ai didi

c++ - Asio 内部线程对用户透明吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:39 27 4
gpt4 key购买 nike

根据文档,大多数 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com