资讯专栏INFORMATION COLUMN

PHP的Ev教程一(初识Ev和EvTimer简单入口)

instein / 2665人阅读

摘要:是一个事件循环一个寄存器对某些事件例如文件描述符是可读的或超时发生进行注册,它将管理这些事件源并为程序提供事件。为此,必须通过执行事件循环处理程序来或多或少地完成对进程或线程的控制,然后通过回调机制来传递事件。

简介
此扩展提供了Libev库——一个用C语言编写的高性能全功能事件循环。

Libev是一个事件循环:一个寄存器对某些事件(例如文件描述符是可读的或超时发生)进行注册,它将管理这些事件源并为程序提供事件。

为此,必须通过执行事件循环处理程序来或多或少地完成对进程(或线程)的控制,然后通过回调机制来传递事件。

你通过注册所谓的事件观察者来记录某些事件,然后通过启动观察者将其交给Libev。

Note: 此扩展在 Windows 平台上不可用。

安装php扩展ev 编译ev扩展
# via http://pecl.php.net/package/ev
# 选择自己对应的php版本下载,我下面演示的是php > = 5.4
wget https://pecl.php.net/get/ev-1.0.4.tgz
tar zxvf ev-1.0.4.tgz
cd ev-1.0.4
./configure
make && make install
简单测试
php -r "var_dump(class_exists("EvTimer"));";

# output: bool(true) 表示安装正常了
EvTimer的测试demo evtimer.php 代码
stop(); //之后的代码依旧会执行
    }

//    file_put_contents("./xx.log", $nowIter . microtime(true) .PHP_EOL, 8);
    echo "w1执行, 当前iter: " . $nowIter . PHP_EOL;
});

Ev::run();

echo "END". PHP_EOL; //只有事件轮询结束后才会执行最后续的代码
执行
php evtimer.php
执行结果
w1执行, 当前iter: 1
w1执行, 当前iter: 2
w1执行, 当前iter: 3
w1执行, 当前iter: 4
w1执行, 当前iter: 5
END

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28887.html

相关文章

  • Linux下libevent库基础安装安装错误解决方案以及使用

    摘要:关于库是一个轻量级的开源高性能网络库,有几个显著的亮点事件驱动,高性能轻量级,专注于网络,不如那么臃肿庞大源代码相当精炼易读跨平台,支持和支持多种多路复用技术,和等支持,定时器和信号等事件注册事件优先级已经被广泛的应用,作为底层的网络库比 关于libevent库 Libevent 是一个轻量级的开源高性能网络库,有几个显著的亮点: 事件驱动(event-driven),高性能; 轻量...

    Java_oldboy 评论0 收藏0
  • PHPEv教程二(watcherwatche回调等)

    摘要:例如,下面的代码等待成为可读的等待直到可读所有观察者构造函数会自动启动观察者。因此,应该保留由构造函数或工厂方法返回的观察者对象。观察者回调传递给观察者构造函数派生于的类等。 Watchers (观察者) 观察者是为了记录某件事而创造的对象。例如,下面的代码等待STDIN成为可读的: 所有观察者构造函数会自动启动观察者。createStopped方法创建停止监视器(例如 EvIo::...

    XboxYan 评论0 收藏0
  • PHPEv教程三(Periodic watcher)

    摘要:周期性观察者的运行模式根据偏移间隔和重新调度参数,不同周期的观察者工作绝对定时器。这并不意味着触发器之间总是有秒的时间,但只有当系统时间显示一个完整的小时时才会调用回调。它必须根据传递的时间值也就是说,大于或等于第二个参数的最低时间值。 Periodic watcher operation modes (周期性观察者的运行模式) 根据偏移、间隔和重新调度参数,不同周期的观察者工作 of...

    wapeyang 评论0 收藏0
  • HTML5实例教程——制作酷炫音频播放器插件

    摘要:播放控制在播放器的界面绘制完成后,首先我们需要做的是为播放上一首下一首这三个主要的控制按钮添加对应的事件监听。上述的按钮点击的事件监听中,我们通过调用原始的元素的和方法来控制音频的播放和暂停。到这里,播放器已经基本成型了。 showImg(https://segmentfault.com/img/bVkoOI); demo download 上图便是这个音频播放器的UI界面图,里面...

    荆兆峰 评论0 收藏0
  • 「HTML5」FileAPI 文件操作实战

    摘要:准备工作首先,我们的来自于标签中选中的文件列表。用户选中的文件信息也会传入回调函数的第一个参数中。唯一需要特殊处理的是文件对象的获取入口改变了。对于标签,监听事件,存放在中对于拖拽操作,存放在拖拽事件的回调函数参数里,通过访问即可。 本文来自《FileAPI 文件操作实战》其他所有系列都放在了Github。欢迎交流和Star。 介绍 HTML5 为我们提供了 File API 相关规...

    Jacendfeng 评论0 收藏0

发表评论

0条评论

instein

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<