perlanyevent简单介绍和入门知识.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
什么是面向事件的编程(事件驱动的编程): 编程中所有的程序是由事件决定 -可以是由用户操作(键盘,鼠标),也可以是由其他程 序和流的到达或者操作系统事件(如网络数据包到达)来触发执行 面向事件编程可以也被定义为,写一个计算机程序,在其中的代码(通常程序的功能的 头部)被明确分配应用程序的主回路, 其代码本身由两部分组成方法: 事件和事件处理的代该文档为文档投稿赚钱网作品,版权所有,违责必纠 码。 面向事件的编程通常被应用在三种情况下: 1?创建用户界面的控制(包括图形) 2?创建一个基于服务器的应用程序 3?游戏编程时多个对象的管理 我们系统管理时,这种应用在服务器的应用程序中使用面向事件的编程很多 ,比如用于服 务器应用解决10,000个并发连接(所谓c10k问题) anyevent是一个性能非常好的基于事件驱动的程序 ,有人使用它来解决 c10k的问题,该文档为文档投稿赚钱网作品,版权所有,违责必纠 象平时我们写的程序,都是基于过程?我们都是先做完事件 1->然后做事件2->然后做 事件3 ?这种方式?该文档为文档投稿赚钱网作品,版权所有,违责必纠 但基于事件就完全不一样了 ,在主流程中你基本只有一个主体框架,程序的动作触发都是 由事件来驱动?比如我们使用的窗口程序?点最大化最小化,都是基于事件,当接收到了最大化 的事件做最大化事件那部分的程序开始运行 ?不在从头到尾部来执行?所以我们读基于事件的该文档为文档投稿赚钱网作品,版权所有,违责必纠 程序,最好是画成思维导图来帮助我们理解 ? 基于事件的程序常用到的最大好处是用来做异步 ,例如,我们要下载100个文件,下载完该文档为文档投稿赚钱网作品,版权所有,违责必纠 后对这些文件进行处理?可能给每个下载和处理的过程写成事件 ,这些事件可以同步运行(关该文档为文档投稿赚钱网作品,版权所有,违责必纠 键在于网络连接和进行文件的读写 io时要等待,事件是给这些等待复用起来 )? 不知大家了解 perl中的select这个功能不,就是等到句柄可以读或者写的时候 ,做不该文档为文档投稿赚钱网作品,版权所有,违责必纠 同的读或者写的操作?事件循环也是一样? 在整个anyevent入门中,我们只要关注二个点就行,watchers(监控者)和 条件变量?该文档为文档投稿赚钱网作品,版权所有,违责必纠 watchers(监控者) 在select中,有个角色叫监控者,就是select函数本身? 在anyevent中不但可以监控 io还可以监控别的一些事件 .来做不同的处理.我们可以该文档为文档投稿赚钱网作品,版权所有,违责必纠 看成这是不断的盯着某件事情的人 有如下几个基本的内置的可以用来盯着的事情 (监控者)? timer :监控时间,到了一定的条件,然后对不同的时间做不同的事件 i/o :这个是监控到io是否可以读写,然后做相应的事件 idle :空闲时做什么事件 signal :监控观查到不同的信息,调用相应的事件 child process:对子程序的状态来调用相应的处理事件 timer watchers 基本语法 代码如下: anyevent->timer( after => $seconds,#多久之后做相应的操作 ? interval => $seconds,# 在上面条件生效后,每格多久进行一次 callback.该文档为文档投稿赚钱网作品,版权所有,违责必纠 cb => $cb,# cb是callback的简写,所以知道了吧,只要到了前面的条件,就会运行 cb该文档为文档投稿赚钱网作品,版权所有,违责必纠 =>指向的函数. ); 使用实例: 下面的例子是,5秒后,每2秒进行一次 callback中的事件,直到$w这个注册的事件 被undef为止(也就是 $count > 10次).这个中的 undef $w 是取消掉这种 watcher的方 法.该文档为文档投稿赚钱网作品,版权所有,违责必纠 代码如下: #!/usr/bi n/perl use strict; use an yeve nt; my $cv = an yeve nt->c on dvar; my $co unt = 0; my $w; $w = anyevent-& gt;timer( after =& gt; 5, in terval =& gt; 2, cb =& gt; sub { $co un t++; warn这是第 $count次调用; if ($cou nt >= 10) { un def $w; } } ); $cv- >recv; i/o watchers 基本语法 代码如下: my $fh = ....; #打开一个句柄 my

文档评论(0)

107****0911 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档