族谱网 头条 人物百科

事件驱动程序设计

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:523
转发:0
评论:0
概观替换传统上一次等待一个完整的指令然后再做运行的方式,事件驱动程序模型下的系统,基本上的架构是预先设计一个事件循环所形成的程序,这个事件循环程序不断地检查目前要处理的信息,根据要处理的信息运行一个触发函数进行必要的处理。其中这个外部信息可能来自一个目录夹中的文件,可能来自键盘或鼠标的动作,或者是一个时间事件。对一个事件驱动(eventdriven)系统进行程序设计,因此可以视为改写系统默认触发函数的行为,来匹配自己需要的一种动作。输入的事件可以放进事件循环或者是经由已经注册的中断处理器来与硬件事件交互;而许多的软件系统使用了混和这两种技术的处理。预先设计好的算法确定了一件事,那就是当他们被需要的时候,就会在适当的时机被触发。也因此提供了一个模拟中断驱动环境(interruptdrivenenvironment)的软件抽象架构。事件驱动程序设计基本上包含了许多小程序片段,这些小程序片段被称...

概观

替换传统上一次等待一个完整的指令然后再做运行的方式,事件驱动程序模型下的系统,基本上的架构是预先设计一个事件循环所形成的程序,这个事件循环程序不断地检查目前要处理的信息,根据要处理的信息运行一个触发函数进行必要的处理。其中这个外部信息可能来自一个目录夹中的文件,可能来自键盘或鼠标的动作,或者是一个时间事件。

对一个事件驱动(event driven)系统进行程序设计,因此可以视为改写系统默认触发函数的行为,来匹配自己需要的一种动作。输入的事件可以放进事件循环或者是经由已经注册的中断处理器来与硬件事件交互;而许多的软件系统使用了混和这两种技术的处理。预先设计好的算法确定了一件事,那就是当他们被需要的时候,就会在适当的时机被触发。也因此提供了一个模拟中断驱动环境(interrupt driven environment)的软件抽象架构。事件驱动程序设计基本上包含了许多小程序片段,这些小程序片段被称为事件处理器(英语:event handler)并且被用来回应外部的事件与分发事件。通常尚未被事件处理器处理的事件,都会被系统放在一个称为事件队列的数据结构中,等待被处理。

许多情况下,事件处理器可以自己触发事件,因此也可能形成一个事件串(英语:event cascade)。 事件驱动程序设计的着重于弹性以及异步化上面,并且企图尽可能的modeless。图形用户界面这类程序就是典型的事件驱动设计方式。

计算机操作系统是事件驱动程序的典型示例。在操作系统的最底层,中断处理器的动作就像是硬件事件的直接处理器,搭配着 CPU 运行分配事件规则动作。对软件进程而言,基本上操作系统可视为一个事件分配器,发送数据和软件中断给用户自己写的软件进程。

相对应于批处理程序设计

下面是两个数相加的示例,分别用批量版本与事件驱动版本来撰写


批量版本

事件驱动版本

事件驱动程序框架与程序库



免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 后轮驱动
优点加速性:在启动加速时,车重向后传递,因此增加后轮的压力,从而使得后轮获得更多的抓地力,提高了加速性。易于维护:后轮驱动车不像前轮驱动车那样,所有的动力系统构件都集中在汽车前部,在机械上相对于前轮驱动车更简单。因此,较易于拆卸和维护。扭矩转向:没有前轮扭矩分配不均可能导致的偏向问题。重量分布:后轮驱动车的发动机和变速箱可以安装的比前轮驱动车靠后。这样车重在前后轮之间的分布更为平均。这样有利于提高汽车的操控性。转弯半径:由于前轮的传动结构相对简化,前轮往往可以转动更大的角度。这样后轮驱动车通常有更小的转弯半径。拖动力:在拖车的情况下,后轮驱动距离拖车的挂接点更近,可以获得更好的转向性能和拖力。缺点操控难度:与前轮驱动相比,后轮驱动车容易出现转向过度的情况,一般驾驶技术的人较难控制。内部空间:对轿车而言,由于后轮驱动车的发动机和变速箱位置靠后,使得前座乘客的空间受到压缩。而由于有通向后轮的传...
· 程序设计
设计工具开发环境图像展览早期IBM402会计电脑的程序是用改变线路连接的方式来撰写GANT程序设计软件相关条目中文编程程序软件程序设计语言程序设计实践程序设计方法学软件开发软件设计模式
· 四轮驱动
设计差速器当车辆通过弯道时,必须允许不同的车轮以不同的速度旋转,例如车辆转弯时,外侧轮和内侧轮由于所走的路径不同,其所行驶的距离也不同,所以内外侧车轮必须要能够以不同的速度进行旋转,而这个问题被称之为轮差问题,如果轮差的问题无法得到解决,那么车辆在进行转弯时就会因为轮胎旋转的不匹配而产生打滑,从而影响整个车辆的可操控性。差速器可以使得一个输出轴以不同的速度驱动两根输出轴,可将扭矩(角向力)平均的传达到两根输出轴,同时通过差速器内的差动齿圈分配两边的角速度。无论是四轮驱动车辆还是两轮驱动车辆,都需要面对轮差问题,两轮驱动车辆可以通过在驱动轴上搭配一个差速器使得引擎输出轴以不同的速度驱动左右两边的车轮轴,以解决轮差的问题,而四轮驱动的车辆由于前后轴都具备驱动力而需要在前后轴各搭配一个差速器来解决左右轮差的问题,除此之外还需要第三个差速器来解决前后驱动轴的轴差问题。由于差速器允许车轮以不同的速度...
· 前轮驱动
引擎布局大多数的前轮驱动都基本采用前置引擎的布局方式,但也有极少部分车型采用后置引擎的布局方式,总体来说,前轮驱动的引擎布局方式分为下列常见的三种:横置式前置引擎/前轮驱动纵置式前置引擎/前轮驱动前中置引擎/前轮驱动历史1900年前前轮驱动汽车的实验,可追溯到1895年至1898年之间,当时Gräf&Stift将一具DeDion-Bouton单缸活塞引擎放置在车辆的前桥来驱动车辆,这可以说是全世界第一辆前轮驱动汽车,但是这辆汽车从来没有量产过。1898年,法国人Latil设计全世界第一个前轮驱动系统。1900年-1920年1904年,美国人J.WalterChristie建造一款自行设计的前轮驱动汽车的原型车,并为其申请专利,他还用这种汽车参加很多赛车活动,包括1906年的范德比尔杯及1912年的法国大奖赛。1912年后,J.WalterChristie开始建立生产线量产这种前轮驱动的汽车...
· 测试驱动开发
测试驱动开发中测试的特征测试驱动开发中需求分析和详细设计的范畴,在代码基本完毕以后,并且这些测试也成为单元测试的一个部分。应用领域新软件的开发,历史系统的维护。测试驱动开发相关讨论正面评价可以有效的避免过度设计带来的浪费。但是也有人强调在开发前需要有完整的设计再实施可以有效的避免重构带来的浪费。可以让开发者在开发中拥有更全面的视角。负面评价开发者可能只完成满足了测试的代码,而忽略了对实际需求的实现。有实践者认为用结对编程的方式可以有效的避免这个问题。会放慢开发实际代码的速度,特别对于要求开发速度的原型开发造成不利。这里需要考虑开发速度需要包含功能和品质两个方面,单纯的代码速度可能不能完全代表开发速度。对于GUI,资料库和Web应用而言。构造单元测试比较困难,如果强行构造单元测试,反而给维护带来额外的工作量。有开发者认为这个是由于设计方法,而不是开发方法造成的困难。使得开发更为关注用例和测试...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信