将更高的优先级设置为 boost::asio 线程处理进程
Set a higher priority to a boost::asio thread wrt the process
我知道C++有一些方法可以设置线程的优先级。类似于这里正在讨论的内容。与此类似,boost::asio
运行的线程中是否有类似的东西?我正在做一个async_read和async_write,以从网络读取和写入数据。
请注意,我确实想在读取和写入之间设置优先级,如 boost::asio 示例中所述。我宁愿想在整个过程中为 asio 读取器线程设置更高的优先级。
如果boost::asio
没有提供直接机制来提高其线程的优先级,那么我是否可以创建std::thread
,像这里讨论的那样为其设置更高的优先级并将其提供给 asio 以将其用于async_read
/async_write
?或者这有可能用一根线吗?
环境:
我正在使用带有 C++11 编译器的 boost 1.68。
我和评论者在一起,怀疑这是否有用。
但是要回答您的问题:没有Boost Asio线程之类的东西。
明确记录了原因:
线程和提升 Asio
因此,图书馆用户有责任创建和 管理将向其发送通知的所有线程。
采用这种方法的原因包括:
- 通过仅从单个线程调用
io_context::run()
,用户的代码可以避免与 同步。例如,库用户可以实现可扩展 单线程服务器(从用户的角度来看(。- 库用户可能需要在线程启动后不久和任何其他应用程序代码之前在线程中执行初始化 被执行。例如,Microsoft COM 的用户必须调用
CoInitializeEx
在可以从中调用任何其他 COM 操作之前 线。- 库接口与线程创建和管理接口分离,并允许在平台上实现 线程不可用的地方。
因此,您可以创建自己的线程 - 我想除了主线程 - 并且可以以您需要的任何方式执行此操作。
相关文章:
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 提升 ASIO - io_service 不要等待连接到线程
- ASIO signal_set多个 IO 线程不可靠,具体取决于代码顺序?
- 将更高的优先级设置为 boost::asio 线程处理进程
- asio 链对象线程安全吗?
- asio::io_service 具有多个线程的优先级队列处理
- boost信号和插槽在不同的线程中不工作(使用boost::asio::io_service)
- 调用boost.asio的异步函数时,线程是什么时候创建的
- 调用socket.remote_endpoint(提升 asio 库)线程安全性
- 使用线程池提升 ASIO 多线程 TCP 服务器
- 重写多线程事件驱动的C 程序以使用单线程Boost :: Asio
- 在具有许多内核的计算机上,使用 Boost ASIO 只能使用 1 个线程
- 如何将每线程用户数据传递到ASIO处理程序中
- 提高 ASIO stream_descriptor和事件 FD 线程安全性
- 提升 asio io_service多线程性能不佳
- 提升:偶尔同步任务的ASIO线程池实现
- 如何在 boost::asio 线程池中使任务可取消/可中断
- c++ Boost::ASIO线程池问题
- 带线程超时的Boost ASIO线程池
- boost::asio线程池与io_service_per_cpu设计