ACE_Proactor实现

2023-11-18

ACE_Proactor实现了Facade模式。
其方法可以分为四类。

  • 生命周期管理方法
  • 事件循环管理方法
  • 定时器管理方法
  • IO操作facilitator方法:
    -须知ACE_Proactor是使用Bridge模式的。ACE_aynch_Read/Write_Stream都是使用Bridge模式来访问他们用于特定的OS平台的IO操作工厂的灵活实现。所有的ACE_Proactor实现实际都转发由ACE_Proactor的实现类(_Impl)来处理。

1.windows中是由ACE_WIN32_Proactor类进行实现的。使用IO完成端口进行完成事件的检测。当初始化一个异步操作的工厂,如ACE_Asynch_Read_Stream时,前摄器的IO完成端口和IO句柄相关联。同时,windows的GetQueuedCompletionStatus函数负责执行射箭循环。同时所有为于ACE_WIN32_Proactor一起使用而定义的Result类都派生自Windows的OVERLAPPED结构。
定时器队列的到期管理在一个单独的线程中处理,是有ACE_WIN32_Proactor管理的。当一个定时器到期时,超时机制使用PostQueuedCompletionStatus函数完成投递给前摄器的IO完成端口。

2.Posix系统则是由ACE_POSIX_Proactor类实现的。异步IO的posix实现使用了控制块(structaiocb),以确定每个异步IO请求和控制信息。每个aiocb同时只能与一个IO请求相关联。
但是虽然封装的Poisx异步IO机制支持read和write操作,但他们不支持任何于TCP/IP连接相关的操作。为了支持ACE_Asynch_Acceptor和ACE_Asynch_Connector的各个函数,使用两外一个线程来执行于连接相关的操作。其实际模拟的过程就是若这两个类中的操作没有立即完成,则将sock

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ACE_Proactor实现 的相关文章

  • 如何做好项目的需求与业务调研?

    1 调研工作如何组织 很多人认为调研工作极难 水平最高的人才能做好一次调研 软件工程中也强调需求获取是最难的事情 有的人要么认为不过如此 甚至是一个普通技术支持都可以做的工作 现在有很多企业上管理软件之前都希望软件公司派人来了解情况 提出针
  • [管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

    目录 前言 一 招聘 1 1 什么是招聘 1 2 招聘 VS 招募 1 3 甄选 1 4 招聘中的重要原则 1 5 招聘的本质 1 6 人才匹配的维度 1 7 人员招聘中的误区 二 面试 2 1 何为面试 2 2 为什么面试 2 3 面试的
  • ACE_Message_Block功能和实现浅析

    ACE Message Block实现浅析 1 概述 ACE Message Block是ACE中很重要的一个类 和ACE框架中的重要模式的实现 如ACE Reactor ACE Proactor ACE Stream ACE Task都有
  • 管理神话之23:随便多少人你都能管

    原文作者 Johanna Rothman Cindy 我要给你的团队再加三个人 Patrick 公司的CTO 斜靠在门口 话音刚落 他转身就想离开 等等 这事我们要讨论一下 你不能这样扔下炸弹后就一走了之 你为什么要我再招更多的人 Cind
  • 敏捷虽好勿盲从

    原文作者 MARK LEVISON 很多公司正在往陷阱里掉 常常表现为 我们的合作伙伴 或竞争对手 采用了敏捷 因此我们也需要采用敏捷 如果没有正当的理由就向敏捷转型 组织将会受到伤害 就这么简单 多说无益 在20世纪80 90年代 制造商
  • 选择 dwm 作为窗口管理器的 4 大理由分析

    导读 我喜欢极简 如果可能 我会尽量在一个终端下运行所有需要的程序 这避免了一些浮夸的特效占用我的资源或者分散我的注意力 而且 无论怎么调整窗口大小和位置却依旧无法使它们完美地对齐 这也让我感到厌烦 出于对极简化的追求 我喜欢上了 Xfce
  • [管理与领导-40]:IT基层管理者 - 做事管理 - 计划到位,干活不累;计划不到位,累死累活不得好

    前言 计划到位 干活不累 计划不到位 累死累活不得好 很多人对计划有一种误解 以为做计划就是纸面上的工作 就是指定时间计划 就是上级给下级指派任务 很显然 这种对计划的误解导致很多人不屑做计划 实际定计划的重点是对目标非分解 分解成可执行的
  • 技术管理-概要设计评审指南

    最近一段时间 工作的重点转移到了技术管理 主要是编写概要设计模板和概要设计评审上 在这个过程中 发现有必要对概要设计评审的工作做一个简单指南编写 由此整理了一个PPT 下面列出愿与大家分享
  • [机缘参悟-101] :IT人 - 遵从世界本源的样子,不带个人情感、道德、认知倾向,接纳一切,你就拥有无限的力量

    目录 道的本义 如来的本义 观音的本义 无为而治本质是顺势而为 儒家的本质 感悟 道的本义本质 天地的力量和运行规律 天地以万物为刍狗 是出自 道德经 第五十章的一句话 在这句话中 天地 指的是宇宙 万物 代表着宇宙中的一切生物和事物 而
  • 2008.06.02 读华为前执行副总裁李玉琢的《我与商业领袖的合作与冲突》有感(三)

    理解一下书中提到的几点管理思想 和大家一起分享 1 柳传志的 搭班子 定战略 带队伍 这里需要注意的是搭班子 定战略 带队伍顺序不可乱 为什么这样说 一个组织只有先存在核心 才可能确定明确的战略 不同的核心 定出来的战略就可能不一样 因此是
  • vue页面的定时刷新

    在做项目时我们肯定会遇到要求该页面几分钟去定时刷新一下获取最新数据这样的情况 那么这个时候我们就要使用setInterval 了 那么我们应该把定时刷新放在什么位置什么时候触发什么时候清除呢 这就需要我们了解vue的生命周期 首先贴一张从官
  • ACE日志系统

    ACE中日志系统 一 简介 以前曾介绍过一个开源日志系统log4cplus ACE也有自己的Logging Facility 与log4cplus相似 ACE日志系统也具有线程安全 灵活 分级显示等特点 可以面向程序调试 运行 测试 和维护
  • 二十九、springBoot的监控和管理

    Spring Boot包含很多其他的特性 它们可以帮你监控和管理发布到生产环境的应用 你可以选择使用HTTP端点 JMX或远程shell SSH或Telnet 来管理和监控应用 审计 Auditing 健康 health 和数据采集 met
  • 多线程编程

    Linux线程概述 内核线程和用户线程 线程是程序中完成独立任务的完整执行序列 即一个可调度的实体 根据运行环境和调度者身份 线程分为内核线程和用户线程 内核线程 在有的系统上也称为LWP 轻量级进程 运行在内核空间 由内核调度 用户线程
  • 即将换到一个自己不熟悉的部门做领导,应该怎么办

    楼主 跳动的时间 时间 2008 11 09 22 14 00 点击 1861 回复 16 我现在在公司的一个部门做经理 在这个职位上已经做了3年多了 因为自己在现有岗位的工作业绩突出 领导十分赏识 最近决定把我调到另外一个部门做总经理 我
  • 华为的成功依靠的不是IPD

    几次聊天中 有人提到他们的公司在学习华为 贯彻IPD 这些企业都发展的比较大了 希望能用一套行之有效的管理方法来进行规范化管理 对于IPD我总是保持谨慎的态度 如果公司已经发展到一定阶段 内部形成了明确的部门分工 同时也出现了严重的部门墙
  • 眼睁睁看着乙方把项目作死是一种什么感受(项目作死10大方法)

    刚跟乙方开完会回来 在会议的后半程我感觉快要窒息了 基于本次项目合作浓郁的 政治因素 作为 掮客 的我们只能要求不再延期跳票 尽快处理等嘴皮子功夫 其它的实在力不从心 这种感觉就真真是眼睁睁看着甲方作死 极力想拉住它 它还嫌 累 我是如何看
  • 使用Minitab解决Excel的限制问题

    前两天 当我在做数据转置以期获得更好分析图形的时候 我碰到了传说中excel的限制 如图 在解决这个问题的过程中 我发现了用来做数据分析 比excel更好的工具Minitab 打开minitab 把纪录数据的Excel表以File gt O
  • 前摄器和异步写入

    升压asio http www boost org doc libs 1 46 1 doc html boost asio html实现基于前摄器设计模式ACE前摄器 http www cse wustl edu schmidt PDF p
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window

随机推荐

  • leetcode-动态规划【背包问题】

    背包问题篇 基础背包 416 分割等和子集 1049 最后一块石头的重量ii 494 目标和 474 一和零 完全背包 518 零钱兑换ii 377 组合总和iv 70 爬楼梯 322 零钱兑换 279 完全平方数 139 单词拆分 多重背
  • 树06--二叉树中和为某一值的路径

    树06 二叉树中和为某一值的路径 jz24 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 输入一颗二叉树的根节点和一个整数 按字典序打印出二叉树中结点值的和为输入整数的所有路径 路径定义为从树的根结点开始往下一直到叶结点所经
  • 课程设计步骤模板计算机,计算机络基础校园课程设计模板.doc

    计算机络基础校园课程设计模板 哈尔滨理工大学 计算机网络基础课程设计 学生姓名 姜金辉 学 号 1130370210 学 院 荣成学院 系 别 软件工程系 专业班级 计应11 2 设计 论文 题目 计算机网络课程设计 指导教师 徐辉 201
  • Vue后台 - 利用 mockjs 完成数据的获取、编辑、增加、删除和分页

    一 前言 很多vue后台的模板都用了mockjs来模拟假数据 并且利用mockjs的拦截请求完成了很多功能 比如数据的获取 编辑 增加 删除等 所以就利用了一个后台模板 在这基础上删除了一些页面 根据一个项目原型自己试着学习mockjs的一
  • 潜入地图_潜入

    潜入地图 By Taylor Barkley Program Officer for Tech and Innovation at Stand Together 提供者 Stand Together技术与创新计划官Taylor Barkle
  • Git, Gitlab使用文档

    一 前期准备 配置网络 连接局域网 下载 windows git 注册gitlab账号 注册后需要管理员确认通过 二 配置ssh 本处来源 docker下gitlab安装配置使用 1 打开本地git bash 使用如下命令生成ssh公钥和私
  • Spring源码学习之BeanDefinition源码解析

    本文作者 磊叔 GLMapper本文链接 https juejin cn post 6844903553820000269 Bean的定义主要由BeanDefinition来描述的 作为Spring中用于包装Bean的数据结构 今天就来看看
  • VMware虚拟化- 虚拟化与VMware的基础介绍

    1 什么是虚拟化 1 1 虚拟化概念 通俗的理解 如果你问 什么是虚拟化 我想大部分人的回答都会是 就是在一个操作系统中运行另一个操作系统 虽然这个答案也没错 但这并不是真正 虚拟化 的意义 只能说是虚拟化在硬件和操作系统之间的一个实践 事
  • 2023华为OD机试真题【计算敌人数量】

    题目描述 有一个大小是N M的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于同一个区域 只有空地上可能存在敌人 E 请求出地图上总共有多少区域里的敌人数小于K 输入描述 第一行输入为N M K N表示地图的行数 M
  • chromecast 协议_Chromecast和Android TV有什么区别?

    chromecast 协议 Google isn t particularly known for its clear branding This is certainly the case when it comes to Chromec
  • windows IPad 文件导入

    windows IPad 文件导入 首先下载iTunes Apple官网 itunes 打开软件 连接IPad 点击该按钮 点击文件共享和上传的软件 之后直接文件拖拽到右边的文档框里面
  • openwrt设置定时重启(天/周/月)

    1 进入openwrt管理页面 找到 系统 计划任务 编辑命令行 点击 保存 2 系统 启动项 中找到cron 确认状态为 开启 点击 重启 使计划生效 或重启系统 说明 一定要设置延时 防止无限重启 每天凌晨1点45分 延时70秒后自动重
  • Navicat for oracle创建数据库

    前言 其实在Oracle中的概念并不是创建数据库 而是创建一个表空间 然后再创建一个用户 设置该用户的默认表空间为我们新创建的表空间 这些操作之后 便和你之前用过的mysql数据库创建完数据库一模一样了 如果你用过mysql的话 当然如果O
  • 基于E-R模型的关系型数据库设计方法

    摘要 在管理信息系统开发中 数据库设计的目标是建立DBMS能识别的关系数据模型 而关系数据模型建立的基础是首先建立E R模型 通过E R模型才能转换为关系数据模型 如何建立E R模型以及如何将E R模型转换为关系数据模型 是管理信息系统开发
  • logback日志不打印到文件问题深入剖析

    详细探究logback不打印日志到文件的问题分析与案例演示 并提供官网bug的提交链接 环境与配置 问题 解决 原因 测试源码 测试结果 深入 线程出异常是否还会打印日志 环境与配置 使用maven构建的 引入logback依赖如下 注 其
  • vue2解决并实现页面刷新内容不变化

    前言 我们都知道 在vue中数据是响应式的 但是对于刷新的之后数据也会丢失 这就得借助于数据库存储 那么在vue中怎么去实现数据库的连接以及数据传输呢 下面我们来一起看一看 在之前我也在这个问题上困扰了很长时间 为了让大家都能看得懂 给大家
  • WPF之UI虚拟化

    在WPF应用程序开发过程中 大数据量的数据展现通常都要考虑性能问题 有下面一种常见的情况 原始数据源数据量很大 但是某一时刻数据容器中的可见元素个数是有限的 剩余大多数元素都处于不可见状态 如果一次性将所有的数据元素都渲染出来则会非常的消耗
  • neutron的DHCP错误之”sudo: unable to resolve host node-1\novs-vsctl:“

    问题背景 使用ESX创建虚拟机 并在虚拟机上创建一个三节点的openstack环境 参考官方的ICEHOUSE版本 注 ubuntu 14 04只支持到icehouse版 为加快虚拟机的创建时间 本文首先创建了一个控制节点c 1 并进行更新
  • pci无线配置服务器,PCI配置空间(中文).doc

    PCI Configuration 名词说明 PCI为Peripheral Component Interconnect 的缩写 它是由 Intel 所发表的另一种局部总线 另一种为 VESA Local Bus 以配合 Pentium 系
  • ACE_Proactor实现

    ACE Proactor实现了Facade模式 其方法可以分为四类 生命周期管理方法 事件循环管理方法 定时器管理方法 IO操作facilitator方法 须知ACE Proactor是使用Bridge模式的 ACE aynch Read