asio之运行框架基础

简介

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:取消任务

task_io_service_operation

task_io_service中操作队列中的操作类型operationtask_io_service_operation,其定义为
在这里插入图片描述

task_io_service_operation其没有虚函数,包含操作完成后的处理器func_; reactor_op为模式reactor中的操作

win_iocp_io_service

在这里插入图片描述
添加了定时器相关接口

win_iocp_operation

win_iocp_io_service中操作队列中的操作类型operationwin_iocp_operation,其定义为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值