为进程中的boost::asio线程设置更高的优先级 我知道C++有一些方法来设置线程的优先级。类似于正在讨论的内容。与此类似,在运行boost::asio的线程中是否有类似的功能?我正在做一个and来读取和写入网络中的数据
请注意,我确实希望在读和写之间设置优先级,如所述。我更希望在整个过程中为asio reader线程设置更高的优先级 如果为进程中的boost::asio线程设置更高的优先级 我知道C++有一些方法来设置线程的优先级。类似于正在讨论的内容。与此类似,在运行boost::asio的线程中是否有类似的功能?我正在做一个and来读取和写入网络中的数据,c++,c++11,boost-asio,C++,C++11,Boost Asio,请注意,我确实希望在读和写之间设置优先级,如所述。我更希望在整个过程中为asio reader线程设置更高的优先级 如果boost::asio没有提供直接机制来提高其线程的优先级,那么我有可能创建std::thread,像前面讨论的那样为其设置更高的优先级,并将其提供给asio以用于async_read/async_write?或者这是可能的一股 环境: 我正在将boost 1.68与C++11编译器一起使用。我支持那些怀疑这是否有用的评论 但要回答您的问题:根本不存在Boost-Asio线程
boost::asio
没有提供直接机制来提高其线程的优先级,那么我有可能创建std::thread
,像前面讨论的那样为其设置更高的优先级,并将其提供给asio以用于async_read
/async_write
?或者这是可能的一股
环境:我正在将boost 1.68与C++11编译器一起使用。我支持那些怀疑这是否有用的评论 但要回答您的问题:根本不存在Boost-Asio线程 明确记录了以下原因: 因此,图书馆用户有责任创建和维护 管理通知将传递到的所有线程 采用这种方法的原因包括:
- 通过仅从单个线程调用
,用户代码可以避免与 同步。例如,库用户可以实现可扩展的 单线程服务器(从用户的角度)io\u context::run()
- 库用户可能需要在线程启动后不久和任何其他应用程序代码之前在线程中执行初始化
被执行。例如,Microsoft的COM用户必须拨打
,然后才能从中调用任何其他COM操作 线CoInitializeEx
- 库接口与线程创建和管理接口分离,并允许在平台上实现 其中线程不可用
因此,您可以创建自己的线程(我想主线程除外),并且可以按照您的要求以任何方式执行。为什么您认为提高异步I/O进程的优先级实际上是一件有用的事情?我使用各种操作系统的经验是,“这个旋钮实际上没什么用处。”我的应用程序有很多线程。但是,asio阅读器线程是最重要的线程。因为这是一个在C++中可用的旋钮,我在想这是否也可以在ASIO中得到。它是否有用还有待测试,但从我的角度来看,肯定值得一试。啊!遗憾的是asio没有提供选项。感谢您的解释@seheIt确实为您提供了所有选项。因为你没有选择。这就是非侵入式框架的具体工作方式。