php脚本控制方法(php swoole多进程/多线程用法示例基于php7nts版)
类别:编程学习 浏览量:666
时间:2021-10-29 14:51:51 php脚本控制方法
php swoole多进程/多线程用法示例基于php7nts版本文实例讲述了php swoole多进程/多线程用法。分享给大家供大家参考,具体如下:
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; } |
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/fangdong88/article/details/78050135
您可能感兴趣
- tp5微信支付接口开发案例(PHP实现的微信APP支付功能示例基于TP5框架)
- 在html代码如何添加php代码(php生成HTML文件的类方法)
- php扩展库使用教程(php使用pecl方式安装扩展操作示例)
- php 设置sessionid生成机制(PHP Cli 模式设置进程名称的方法)
- phparray函数的用法(php array_chunk函数用法与注意事项)
- thinkphp6.0安装(使用composer安装使用thinkphp6.0框架问题视频教程)
- php怎么创建一个文件(PHP文件后缀不强制为.php方法)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- phpstudy详细教程学习(phpstudy的php版本自由修改的方法)
- php代码打包环境加密(php实现对文件压缩简单的方法)
- dedecms手机独立域名(DedeCMS Wap.php 绑定域名的解决办法)
- php守护进程(什么是PHP7中的孤儿进程与僵尸进程)
- phpcurl调用本地函数(PHP使用CURL实现下载文件功能示例)
- php上传大文件教程(PHP实现带进度条的Ajax文件上传功能示例)
- 在php中与数据库连接的技术(PHP7.0连接DB操作实例分析基于mysqli)
- 用php递归函数实现阶乘的计算(php求斐波那契数的两种实现方式递归与递推)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
- 通过体温就能为智能手表充电 原来是用NASA在空间站用的黑科技(通过体温就能为智能手表充电)
- 智能手表兼容Windows和Android 无需充电挑战苹果(智能手表兼容Windows和Android)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
- 华为 Watch GT2 Pro 智能手表曝光,新增支持无线充电(华为WatchGT2)
热门推荐
- php redis应用场景(PHP商品秒杀问题解决方案实例详解mysql与redis)
- MySQL定时任务(EVENT事件)如何配置详解(MySQL定时任务EVENT事件如何配置详解)
- vue将弹框抽离成组件(vue3 可拖动的左右面板分割组件实现)
- ipython命令行查看文件夹(对IPython交互模式下的退出方法详解)
- python将对象转换成json(python对象与json相互转换的方法)
- pythonlambda是什么函数(Python之lambda匿名函数及map和filter的用法)
- python dict 操作(Python中dict和set的用法讲解)
- python 导入指定文件夹的模块(Python实现的在特定目录下导入模块功能分析)
- css技巧100个(css小技巧汇总)
- sql server 动态建表(SQL Server如何通过创建临时表遍历更新数据详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9