Advertisement

使用Boost::asio C++版本中的io_context组件

阅读量:

支持异步I/O功能

该库中的Boost::asio::io_context承担着异步I/O操作的关键功能。由该对象提供其核心的异步I/O操作能力,并包含一系列与之相关的接口和方法。

(1) boost::asio::ip::tcp::socket

(2) boost::asio::ip::tcp::acceptor

(3) boost::asio::ip::upd::socket

(4) boost::asio::deadline_timer

io_context也实现为用户提供自定义异步服务的功能

安全性

(1) 对于不同对象,线程安全

对于共享对象,在除restart和notify_fork带有特定异常之外都是线程安全的。若在运行run、运行一段时间、等待直到完成等操作尚未完成时即调用restart(重启),会导致无意义的行为。此外,在其他线程中调用相关功能时必须禁止使用notify_fork函数

同步和异步操作

(1) 对于同步I/O情况,对于每一个I/O操作都将隐含执行一个io_context对象

(2) 当处理异步I/O时,在io_context内部调用run()、run_one()、run_for()、run_until()以及poll()/poll_one()等函数之前必须确保它们已经被正确初始化以准备接收后续操作。

全部评论 (0)

还没有任何评论哟~