简介
asio框架的运行基础是task_io_service以及window平台下的win_iocp_io_service,即asio的事件循环
task_io_service
task_io_service是linux平台下的事件循环,其支持多线程
run:执行事件循环,直到stopped,或者没有工作任务
run_one:直到stopeed或者执行了一个任务
init_task:初始化reactor
poll:非阻塞从队列中取出任务执行
poll_one:非阻塞从队列中取出一个任务执行
stop:停止所有的事件循环
stopped:判断事件循环是否结束
reset:事件循环复位,准备下一步执行run
work_started:工作任务数+1
work_finished:工作任务数-1
can_dispatch:判断处理器是否可以立即执行,主要是判断当前调用线程是否是任务执行线程
dispatch:请求立即执行处理任务,如果调用线程是任务执行线程则立即执行,否则添加到工作队列中
post:将任务添加到工作队列中
post_immediate_completion:如果调用线程在任务执行线程中则立即执行,否则添加到任务队列中,会调用work_started
post_deferred_completion:如果调用线程在任务执行线程中则立即执行,否则添加到任务队列中,不会调用work_started
post_deferred_completions:如果调用线程在任务执行线程中则立即执行,否则添加到任务队列中
abandon_operations:取消任务
win_iocp_io_service
添加了定时器相关接口