php swoole多进程/多线程例子
来源:互联网 发布:话费流量三级分销源码 编辑:程序博客网 时间:2024/06/15 02:20
swoole的多线程其实就是多进程,进程创建太多切换的开销很大,如果能用上pthreads建议用pthreads,因为我用的是php7nts版本没办法用pthreads
swoole实例如下:
<?php/** * 创建多进程 */$worker_num = 6; // 默认进程数$workers = []; // 进程保存$redirect_stdout = false; // 重定向输出 ; 这个参数用途等会我们看效果for($i = 0; $i < $worker_num; $i++){ $process = new swoole_process('callback_function', $redirect_stdout); // 启用消息队列 int $msgkey = 0, int $mode = 2 $process->useQueue(0, 2); $pid = $process->start(); // 管道写入内容 $process->write('index:'.$i); $process->push('进程的消息队列内容'); // 将每一个进程的句柄存起来 $workers[$pid] = $process;}/** * 子进程回调 * @param swoole_process $worker [description] * @return [type] [description] */function callback_function(swoole_process $worker){ $recv = $worker->pop(); echo "子输出主内容: {$recv}".PHP_EOL; //get guandao content $recv = $worker->read(); $result = doTask(); echo PHP_EOL.$result.'==='.$worker->pid.'==='.$recv; $worker->exit(0);}/** * 监控/回收子进程 */while(1){ $ret = swoole_process::wait(); if ($ret){// $ret 是个数组 code是进程退出状态码, $pid = $ret['pid']; echo PHP_EOL."Worker Exit, PID=" . $pid . PHP_EOL; }else{ break; }}/** * doTask * @return [type] [description] */function doTask(){ sleep(2); return true;}
阅读全文
0 0
- php swoole多进程/多线程例子
- [李景山php] swoole 进程创建
- swoole多进程操作
- 【Swoole】多进程process
- php swoole 异步处理任务例子
- [李景山php] swoole 进程间 事件
- [李景山php] swoole 进程间 通信
- [李景山php] swoole 进程信号触发
- Swoole多进程的实现
- 【Swoole基础】Linux的多线程切换和多进程的切换
- PHP--swoole
- php实现多进程、多线程
- 【Swoole】当SWOOLE遇上PHP
- 【Swoole】当SWOOLE遇上PHP
- PHP中的(伪)多线程与多进程
- PHP中的(伪)多线程与多进程
- php的多进程与多线程
- php 多进程及多线程的优缺点
- 微信公众号网页授权获取用户openid
- Oracle报 ORA-00054资源正忙的解决办法
- CentOS Linux搭建SVN服务器
- springboot+mybatis的深化
- 在win32中实现浏览文件夹功能与删除文件功能
- php swoole多进程/多线程例子
- 多条目加载
- SpringMVC与Struts2区别计较总结
- 为什么需要消息队列,及使用消息队列的好处?
- Caused by: android.view.InflateException: android.support.design.widget.CoordinatorLayout
- IO流
- 启动代码中关于变量的初始化
- springboot mybaits集成分页组件
- Android Google Face API 增强现实教程