事件驱动:
编程中所有的程序是由事件决定 – 可以是由用户操作(键盘,鼠标),也可以是由其他程序和流的到达或者操作系统事件(如网络数据包到达)来触发执行.
基于事件的程序常用到的最大好处是用来做异步,例如我们要下载 100 个文件,下载完后对这些文件进行处理.可能给每个下载和处理的过程写成事件,这些事件可以同步运行(关键在于网络连接和进行文件的读写 IO 时要等待,事件是给这些等待复用起来).
WATCHERS(监控者)
在 select 中,有个角色叫"监控者",就是 select 函数本身.
在 AnyEvent 中不但可以监控 IO 还可以监控别的一些事件.来做不同的处理.我们可以看成这是不断的盯着某件事情的人
有如下几个基本的内置的可以用来盯着的事情("监控者").
TIMER : 监控时间,到了一定的条件,然后对不同的时间做不同的事件
I/O: 这个是监控到 IO 是否可以读写,然后做相应的事件
IDLE: 空闲时做什么事件
SIGNAL : 监控观查到不同的信息,调用相应的事件
CHILD PROCESS: 对子程序的状态来调用相应的处理事件
各种WATCHERS(监控者)示例
TIMER WATCHERS
基本语法
AnyEvent->timer(
after => $seconds, # 多久之后做相应的操作.
interval => $seconds, # 在上面条件生效后,每格多久进行一次 callback.
cb => $cb, # cb 是 callback 的简写,所以知道了吧,只要到了前面的条件,就会运行 cb => 指向的函数.
事件驱动
最新推荐文章于 2024-06-22 15:25:53 发布
本文深入探讨事件驱动编程的概念,解析其工作原理,包括事件监听、事件触发和事件处理。通过实例展示如何在应用程序中实现事件驱动,阐述其在提高系统响应性和可扩展性方面的优势,并讨论相关的设计模式和最佳实践。
摘要由CSDN通过智能技术生成