C++ 什么是asio::io_服务?

C++ 什么是asio::io_服务?,c++,select,epoll,asio,C++,Select,Epoll,Asio,我正在学习异步I/O。我了解select()、poll()和epoll()。 我想知道的是使用boost::asio时的异步I/O。根据调查结果,使用了io_服务。select()、poll()和epoll中的哪一个?asio::io_服务已过时 在较新的boost版本中,它被asio::io_上下文所取代 io_上下文(形式io_服务)主要用于对asio库中的对象执行同步操作,例如套接字、接收器等,根据: …I/O对象上的同步操作隐式运行io_上下文 对象,用于单个操作。io_上下文函数运行(

我正在学习异步I/O。我了解select()、poll()和epoll()。
我想知道的是使用boost::asio时的异步I/O。根据调查结果,使用了io_服务。select()、poll()和epoll中的哪一个?asio::io_服务已过时

在较新的boost版本中,它被asio::io_上下文所取代

io_上下文(形式io_服务)主要用于对asio库中的对象执行同步操作,例如套接字、接收器等,根据:

…I/O对象上的同步操作隐式运行io_上下文 对象,用于单个操作。io_上下文函数运行(), 必须调用run_one()、run_for()、run_until()、poll()或poll_one() 让io_上下文代表 C++程序。异步操作已完成的通知 通过调用关联的处理程序来传递。处理程序是 仅由当前正在调用的任何重载的线程调用 运行()、运行一次()、运行一次()、运行一次()、运行一次直到()、轮询()或轮询一次() 语境

基本上,您将要执行的任务发送到io_上下文(异步函数),io_上下文负责执行这些任务(可能在线程或线程池上)并调用提供的回调(=处理程序)


它通常在内部使用某些版本的,以便在线程池中的线程上进行有效的任务分发。

是否在io_上下文中使用epoll()?我不确定实现细节,但我希望它使用平台上可用的套接字io通知系统,例如linux上的epoll、osx上的kqueue和win上的Completion ports。