Swoole在2.0开始内置协程的能力,提供了具备协程能力IO接口.最好的好处是开发者可以以同步编码的方式达到异步IO的效果.

Swoole2.0安装要求

php版本要求:>= 5.5, 暂不支持PHP7

基于swoole_server或者swoole_http_server进行开发,目前支持在onRequet, onReceive, onConnect回调中使用协程

安装过程

启用–enable-async-redis –enable-coroutine

安装常见问题

1.找不到libhiredis.so.0.13 ,确保安装了hiredis前提下.增加/etc/ld.so.conf.d/lib.conf文件。内容”/usr/local/lib”.然后运行ldconfig命令

2.gcc 4.4下如果在编译swoole的时候(即make阶段),出现gcc warning

dereferencing pointer ‘v.327’ does break strict-aliasing rules、dereferencing type-punned pointer will break strict-aliasing rules

请手动编辑Makefile,将CFLAGS = -Wall -pthread -g -O2替换为CFLAGS = -Wall -pthread -g -O2 -fno-strict-aliasing,

然后重新编译make clean;make;make install

安装完成后,请用php -m 来确认swoole是否安装成功.

第一个代码示例.

$serv = new swoole\http\server("0.0.0.0", 1215);

$serv->set([

'worker_num' => 1,

]);

$serv->on('Request', function($request, $response) {

$response->header("X-Server", "Swoole");

$cli = new Swoole\Coroutine\Http\Client('127.0.0.1', 80);

$cli->setHeaders([

'Host' => "test.xtgxiso.cn",

"User-Agent" => 'Chrome/49.0.2587.3',

'Accept' => 'text/html,application/xhtml+xml,application/xml',

'Accept-Encoding' => 'gzip',

]);

$cli->set([ 'timeout' => 2]);

$cli->get('/sleep1.php');

$str = $cli->body;

$cli->close();

$response->end("

Hello Swoole!

".$str);

});

$serv->start();

代码大致的功能是,以一个进程启动一个http server,访问一个url.这个url会sleep(1)

模拟并发

echo "123";

访问的效果

通过这个示例,我们已经可以明白swoole2.0的好处了。原来为了实现高并发,用的是IO复用,是各种回调。现在内置了协程,实现了高性能的同时代码看起来也是同步的!期待swoole2.0越来越强大.

swoole2.0与java_swoole2.0试用说明相关推荐

  1. 使用 JIRA 4.0 + Greenhopper 4.0 进行项目状态跟踪(转)

    http://www.blogjava.net/haha1903/archive/2009/11/01/300609.html 使用 JIRA 4.0 + Greenhopper 4.0 进行项目状态 ...

  2. 互联网上下50年,万字长文推演Web1.0到Web5.0

    文/沈旸 (微信公众号:信息化与数字化) 如果说2021年科技圈最火的概念是"元宇宙",那么2022年最火的一定是Web3.0了.目前看来,较早定义Web3.0概念的,是区块链研究 ...

  3. 卡巴斯基6.0,7.0永久激活得方法

    今天要发这个帖子,是被卡巴折磨得没有办法了.辛辛苦苦在网上找了一个可以用得KEY.过几天就给封杀了.郁闷.下面得方法确实可以用. 还是老问题,关于卡巴斯基(Kaspersky)的激活,这次不给发授权码 ...

  4. Excel无法显示0.00或者0值

    问题:单元格输入"0.00"或者"0"等均无法显示出来,输入其他数字则正常. 解决方法: (1)Microsoft Office 的 Excel 2003 中, ...

  5. 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari...

    一.集群软硬件环境准备: 操作系统:  centos 7 x86_64.1804 Ambari版本:2.7.0 HDP版本:3.0.0 HAWQ版本:2.3.0 5台PC作为工作站: ep-bd01 ...

  6. 积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引

    [源码下载] 积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引 作者:webabcd Flash 之 ActionScript 3.0  1.积少成 ...

  7. 一文看懂模糊搜索1.0到3.0的算法迭代历程

    参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 作者 | 宋广泽 责编 | 郭芮 来源 | CSDN(ID:CSDNnews) 前一段时间在Linux上用C语言做了一个信息管理系统,初始版本 ...

  8. 为什么 HashMap 加载因子一定是0.75?而不是0.8,0.6?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的 ...

  9. 127.0.0.1和0.0.0.0地址的区别

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 1. 问题引入 之前在使用tomcat的时候,启动tomcat默认 ...

  10. 一个有趣的实验:用0.1f 替换 0,性能提升 7 倍!

    点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文来源:http://cenalulu.github.io/linux/about-de ...

最新文章

  1. OCP-052 053部分答案解析
  2. “金财工程”网络安全 五
  3. python3语法都相同吗_python2 与 python3 语法区别--转
  4. Dubbo源码分析系列-Dubbo的动态编译原理
  5. 华为悬红“奥林帕斯奖”,促进数据产业基础技术研究与生态建设
  6. 杭电 2176 取(m堆)石子游戏(博弈)
  7. CPU负载均衡之EAS
  8. linux下用arcconf做raid5,arcconf工具相关命令V1.0
  9. bean的生命周期(最全最细讲解)
  10. 上下文无关文法(例题+计算)
  11. 大型在线考试答题系统源码 B/S架构
  12. [CVPR2022|基于文本实例分割]ReSTR: Convolution-free Referring Image Segmentation Using Transformers
  13. 【iTools】iTools Index
  14. 赤壁之战的Google Map
  15. 单臂路由 二三层交换机、路由器简单组网
  16. QST青软实训学员学习总结-2020/5/24-STM32
  17. ubootenv工具fw_printenv及配置文件fw_env.config
  18. ubuntu环境安装
  19. html导航栏切换,jQuery实现简单导航栏的样式切换
  20. mysql删除数据后多久释放空间

热门文章

  1. JSP 内置对象request常见用法
  2. 3.分布式服务架构:原理、设计与实战 --- 服务化系统容量评估和性能保障
  3. 36. LatencyTOP
  4. 1.业务层 、服务层、数据层、表现层
  5. 6. memcache 机制的了解
  6. 定时任务:java 中Timer 和 TimerTask 的使用
  7. jquery中css()与animate()
  8. Enterprise Library 4.1学习笔记2——缓存应用程序块之FileDepende
  9. Java程序员面试宝典--面向对象的基本概念
  10. 给Debian浏览器安装flash播放插件