阅读更多

1顶
1踩

编程语言

原创新闻 PHP异步并行扩展Swoole发布1.7版本

2014-04-17 15:05 by 正式记者 matyhtf 评论(0) 有6937人浏览

Swoole介绍

Swoole是一个PHP的异步并行扩展。基于Swoole,PHP就可以开发类似Node.js、Golang的全异步事件驱动的高性能网络程序。

 

Swoole提供了全套的异步API,包括异步MySQL查询、毫秒定时器、异步文件读写、DNS查询、异步TCP/UDP客户端等。

 

与Node.js不同,Swoole具有多线程Reactor和多进程Worker可以很好的利用多核。所以在多核的机器上,IO处理能力是Node.js的数倍。另外Swoole的工作进程中事件回调可以是异步方式,也可以同步。

 

Swoole中使用了很多Linux内核新特性来增强系统功能和性能,如sendfile、eventfd、timerfd、signalfd等。

 

Swoole中使用了很多CPU原子性来实现多线程无锁编程,实现了高效的并行化运行。在swoole中工作进程可以很轻松地遍历/发送数据到所有TCP连接,而且无需担心数据同步和加锁。

Swoole 1.7.0

该版本主要改进内容包括:

 

  • reactor线程与writer线程合并
  • 对send优化,加入out_buffer机制
  • 增加AIO异步读写文件的API
  • 增加DNS异步查询函数
  • swoole_client在php-fpm或apache mod_php下支持长连接
  • 增加非Server模式下的异步定时器支持
  • 定时器优化
  • 增加sendfile支持
  • onReceive的data变量使用引用方式,减少一次内存复制
  • 消息队列模式增加定时器的支持
  • 增加signalfd的支持,使信号事件也加入到Reactor
  • 优化对Internet网络的支持,可轻松应对慢速异构网络

Swoole示例

$serv = new swoole_server("127.0.0.1", 9501);
$serv->on('connect', function ($serv, $fd){
    echo "Client:Connect.\n";
});
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, 'Swoole: '.$data);
    //$serv->close($fd);
});
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});
$serv->start();

 

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$client->on("connect", function($cli) {
    $cli->send("hello world\n");
});
$client->on("receive", function($cli, $data = ""){
    echo "Receive: ".$data.PHP_EOL;
});
$client->on("error", function($cli){
    echo "connect fail\n";
});
$client->on("close", function($cli){
    echo "connection close\n";
});
$client->connect('127.0.0.1', 9501, 0.5);

 

Swoole项目地址

  

1
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Swoole:重新定义PHP

    PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole可以广泛应用于互联网、...

  • Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法

    Centos8(Liunx) 中安装PHP7.4 的三种方法和删除它的三种方法 编译安装 Centos8下PHP源码编译和通过yum安装的区别和以后的选择 其实这两种方法各有千秋: yum安装: 从yum安装来说吧,yum相当于是自动化帮你...

  • FPB 2.0:免费的计算机编程类中文书籍 2.0

    深入理解并行编程 程序员的自我修养 Growth: 全栈增长工程师指南 语言相关类 Android Android Design(中文版) Google Material Design 正體中文版 ( 译本一 译本二 ) Material Design ...

  • 编程书籍索引

    编程书籍索引,附在线链接。 ...版本控制 ...PHP ...(PDF版本,运维生存时间出品) ...版本控制 ...swoole文档及入门教程 Composer 中文网 Slim 中文文档 Lumen 中文文档 Prolog 笨办法...

  • 免费的编程中文书籍索引

    免费的编程中文书籍索引 ...免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程类书籍有哪些?...版本控制 编

  • 免费的编程中文书籍索引(2018第三版)

    今天我又重新核准了文章中的链接地址,发布了 3.0 版。 欢迎大家提 PR: https://github.com/justjavac/... 操作系统 开源世界旅行手册 鸟哥的Linux私房菜 The Linux Command Line (中英文版) ...

  • 【转载】免费的编程中文书籍索引

    转载GitHub地址:https://github.com/justjavac/free-programming-books-zh_CN#scala目录语言无关类操作系统智能系统分布式系统编译原理函数式概念计算机图形学WEB服务器版本控制编辑器NoSQLPostgreSQLMySQL管理和...

  • 史上最全计算机类编程资料大集合

    PHP 最佳实践 PHP 开发者实践 深入理解PHP内核 PHP扩展开发及内核应用 Laravel5.1 中文文档 Laravel 5.1 LTS 速查表 Symfony2 Cookbook 中文版(版本 2.7.0 LTS) Symfony2中文文档 (未译完) YiiBook几本Yii框架的...

  • 第11讲:深入理解指针(1).pdf

    第11讲:深入理解指针(1)

  • springboot整合 freemarker方法

    springboot整合 freemarker方法

  • 第14讲:深入理解指针(4).pdf

    第14讲:深入理解指针(4)

  • 同行者4.1.2语音助手

    《同行者4.1.2语音助手:车机版安装详解》 在现代科技日新月异的时代,智能车载设备已经成为了汽车生活的重要组成部分。"同行者4.1.2"便是这样一款专为车机设计的语音助手,旨在提供更为便捷、安全的驾驶体验。该版本针对掌讯全系列设备进行了兼容优化,让车主能够轻松实现语音控制,减少驾驶过程中的手动操作,提升行车安全性。 我们来了解下"同行者4.1.2"的核心功能。这款语音助手集成了智能语音识别技术,用户可以通过简单的语音指令完成导航、音乐播放、电话拨打等一系列操作,有效避免了因操作手机或车机带来的分心。此外,其强大的语义理解和自学习能力,使得它能逐步适应用户的口音和习惯,提供更个性化的服务。 在安装过程中,用户需要注意的是,"同行者4.1.2"包含了四个核心组件,分别是: 1. TXZCore.apk:这是同行者语音助手的基础框架,包含了语音识别和处理的核心算法,是整个应用运行的基础。 2. com.txznet.comm.base.BaseApplication.apk:这个文件可能包含了应用的公共模块和基础服务,为其他组件提供支持。 3. TXZsetting.apk:这

  • 市场拓展主管绩效考核表.xls

    市场拓展主管绩效考核表

  • “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量

    “线上购车3D全方位体验:汽车模型展示与个性化定制功能”,three.js案例- 线上购车3d展示(源码) 包含内容:1.汽车模型展示;2.汽车肤;3.轮毂部件更;4.开关车门动画;5.汽车尺寸测量;6.自动驾驶;7.镜面倒影;8.hdr运用;9.移动端适配; 本为html+css+three.js源码 ,核心关键词:three.js案例; 线上购车3D展示; 汽车模型展示; 汽车换肤; 轮毂部件更换; 开关车门动画; 汽车尺寸测量; 自动驾驶; 镜面倒影; HDR运用; 移动端适配; HTML+CSS+three.js源码。,"Three.js源码:线上购车3D展示案例,含汽车模型、换肤、轮毂更换等九大功能"

  • (数据权威)中国城市_县域统计面板数据二合一

    数据名称:2000-2022年各县市区主要社会经济发展指标面板数据 数据类型:dta格式 数据来源:中国县域统计

  • 120页-环卫车项目初步方案.pdf

    一、智慧环卫管理平台的建设背景与目标 智慧环卫管理平台的建设源于对环卫管理全面升级的需求。当前,城管局已拥有139辆配备车载GPS系统、摄像头和油耗传感器的环卫车辆,但环卫人员尚未配备智能移动终端,公厕也缺乏信息化系统和智能终端设备。为了提升环卫作业效率、实现精细化管理并节省开支,智慧环卫管理平台应运而生。该平台旨在通过信息化技术和软硬件设备,如车载智能终端和环卫手机App,实时了解环卫人员、车辆的工作状态、信息和历史记录,使环卫作业管理透明化、精细化。同时,平台还期望通过数据模型搭建和数据研读,实现更合理的环卫动态资源配置,为环卫工作的科学、健康、持续发展提供决策支持。 二、智慧环卫管理平台的建设内容与功能 智慧环卫管理平台的建设内容包括运行机制体制建设、业务流程设计、智慧公厕系统建设、网络建设、主机和储存平台需求、平台运维管理体系、硬件标准规范体系以及考核评价体系等多个方面。其中,智慧公厕系统建设尤为关键,它能实时监控公厕运行状态,保障公厕的清洁和正常运行。平台建设还充分利用了现有的电子政务网络资源,并考虑了有线和无线网络的需求。在功能上,平台通过普查、整合等手段全面收集环卫车辆、企业、人员、设施、设备等数据,建立智慧环卫基础数据库。利用智能传感、卫星定位等技术实现环卫作业的在线监管和远程监控,实现对道路、公共场所等的作业状况和卫生状况的全面监管。此外,平台还建立了环卫作业网格化管理责任机制,实现从作业过程到结果的全面监管,科学评价区域、部门、单位和人员的作业效果。 三、智慧环卫管理平台的效益与风险规避 智慧环卫管理平台的建设将带来显著的环境、经济和管理效益。环境方面,它将有力推进环境卫生监管服务工作,改善环境卫生状况,为人民群众创造更加清洁、卫生的工作和生活环境。经济方面,通过智慧化监管,大大降低了传统管理手段的成本,提高了监管的准确性和效率。管理方面,平台能够追踪溯源市民反映的问题,如公厕异味、渣土车辆抛洒等,并找到相应的责任单位进行处置,防止类似事件再次发生。同时,平台还拥有强大的预警机制功能,能够在很多环卫问题尚未出现前进行处置。然而,平台建设也面临一定的风险,如部门协调、配合问题,建设单位选择风险以及不可预测的自然灾害等。为了规避这些风险,需要加强领导、统一思想,选择优秀的系统集成商承接项目建设,并做好计算机和应用系统的培训工作。同时,也要注意标准制定工作和相关法律法规的制定工作,以保证系统建设完成后能够真正为环卫管理工作带来便利。

  • 36 -企业管理主管绩效考核表1.xlsx

    36 -企业管理主管绩效考核表1

  • 1.1 -1.4 工程代码

    1.1 -1.4 工程代码

  • USDT合约,USDT智能合约

    USDT合约,USDT智能合约

Global site tag (gtag.js) - Google Analytics