Php多线程(php和java哪个更好)
微博Qzone微信用PHP实现反应器单线程网络模型
原创流浪剑客262021-05-08 23:12:24在各种网络模型的文章中,我们经常可以看到反应堆网络模型。
它经常出现在许多软件与外界交互的网络部分,比如:
Redis采用反应器单线程网络IO模型。
Kafka使用reactor多线程网络IO模型。
为什么要使用网络IO模型?
为什么要使用网络IO模型:需要了解用户态、内核态、阻塞、非阻塞、同步、异步、IO复用等知识。
简单来说。
这里简单来说,用户态程序是不能直接操作网络IO设备的。它需要发起一个系统调用,把控制权交给操作系统的内核。内核从网卡读取数据,并将其返回给用户态程序。在这个过程中,用户程序等待还是不等待,如何将内核处理的结果通知给用户程序,这就是网络IO模型可以优化的地方。
基本原因
说到底就是优化CPU的执行时间片,不让CPU闲置。
非常重要
补充一下,网络数据的复制操作不是由CPU来完成的,CPU只是初始化这个传输操作,具体数据的复制是由DMA设备来完成的。
用PHP实现反应器单线程网络模型
反应器单线程网络模型,采用IO复用的epoll模型,事件机制。操作系统需要安装libevent扩展,php需要安装事件和套接字扩展。
测试示例
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。