软件简介

php基于pcntl扩展实现的多进程框架。

有以下几种优点:

1、子进程数量的控制

2、钩子形式的运行子进程,方便代码实现

3、3种不同的方式导入任务(数组输入、运行次数输入、动态加载)

4、子进程运行结果的收集(3种收集方式:文件、System V message queue、redis,推荐使用redis)

5、支持对子进程返回结果处理,并通过钩子方式来定义自己的处理过程

注意事项:

1、建议不开启子进程返回结果,因为这样需要使用中间件来传递结果影响效率,能在子进程中处理尽量在子进程中处理

2、使用System V message queue为中间件的注意队列的总大小和单个消息的大小,如果返回结果大小超过单个消息的大小将会发生消息失败

3、非要使用消息中间件,建议使用redis

4、_fork($arg) 方法需要有输入参数,在子进程任务输入方式是次数时,$arg为null

5、_addTask() 方法返回的一定为数组,里面的元素对应 _fork($arg) 中的$arg

6、在开启子进程结果处理方法时,MultiThread 的 run() 方法是不会有返回值

7、注意php需要的扩展是否安装,基本扩展需要有pcntl。同时也注意中间件的扩展是否安装,如果使用的话

php 多进程 返回值,php多进程相关推荐

  1. Python多进程multiprocess之多进程返回值获取

    由于python内部GIL(全局解释器锁)的存在,所以python的线程实际上并不能很好的起到任务并行处理的作用,尤其是无法充分利用系统多核的优势,因此想要利用多核处理并行任务,就需要用到多进程--m ...

  2. python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),

    案例1 # -*- coding: utf-8 -*- """ @File : 20200318_摄像头多进程流传输.py @Time : 2020/3/18 14:58 ...

  3. java多进程_Java中创建多进程

    我们常常听到的比较多是如何创建多线程,很少听到如何创建多进程,今天我们来讲解一下如何创建多进程 ProcessBuilder类 ProcessBuilder类是J2SE 1.5在Java.lang中新 ...

  4. python获取子进程返回值_Python 从subprocess运行的子进程中实时获取输出的例子 Python如何抓取程序的输出?...

    关于python中用subprocess调用exe子进程的问题不懂我的人有什么资格对我指指点点,不了解我的人凭什么对我说三道四的. python杀死子进程后继续执行后面程序 程序a(python写成) ...

  5. Redis 笔记(10)— 发布订阅模式(发布订阅单个信道、订阅信道后的返回值分类、发布订阅多个信道)

    1. 发布-订阅概念 发布-订阅 模式包含两种角色,分别为发布者和订阅者. 订阅者可以订阅一个或者若干个频道(channel): 而发布者可以向指定的频道发送消息,所有订阅此频道的订阅者都可以收到此消 ...

  6. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

  7. Python 函数参数有冒号 声明后有- 箭头 返回值注释 参数类型注释

    在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...

  8. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. 刚开始复习js题还不太习惯 CSDN上看了一个帖子,说是牛客上的标答, ...

  9. 微信小程序根据后台返回值设置自己想要的结果

    今天做微信小程序充值列表 其中微信或者支付后台返回的是1和2 , 那么就需要判断返回值是否为1或者是2然后在改变 简单的就是在xml中判断下就行了 <view class='recharge_t ...

最新文章

  1. 无法绑定到“ ngModel”,因为它不是“ input”的已知属性
  2. 《Python游戏编程快速上手》第三章-猜数字游戏
  3. android注册界面高级,Android用户注册界面简单设计
  4. yum 升级curl_CentOS 6/7 更新curl
  5. ABP vNext中使用开源日志面板 LogDashboard
  6. rest api 示例2_REST API教程– REST Client,REST Service和API调用通过代码示例进行了解释
  7. CANOpen紧急报文
  8. blender下载_下载此Blender Hotkey备忘单
  9. CSDN 2020博客之星投票进行中:送你喜爱的博主C位出道!
  10. python中对两个 list 求交集,并集和差集
  11. mysql 时间设置
  12. 实现原理 扫描枪_扫描枪原理
  13. 操作系统——进程管理的功能
  14. 名侦探柯南主线剧情整理
  15. 清华操作系统课程(向勇、陈渝)笔记——第十二章(一)(基本概念:文件系统和文件,文件描述符,目录,文件别名,文件系统种类)
  16. yana--Flutter一些学习
  17. 集合语音识别、音频蓝牙、对话控制多功能一体的WTK6900H-32N眼部按摩器应用设计方案
  18. 如何使用微信开发者工具查看Appid以及SECRET
  19. CRPR能补偿crosstalk吗?
  20. Dubbo 正式支持 Spring 6 Spring Boot 3

热门文章

  1. 百度编辑器(ueditor)@功能之获取坐标
  2. [svc][jk][mem]linux 内存清理/释放命令
  3. Eclipse的SVN插件移动中文名称文件提示org.tigris.subversion.javahl.ClientException: Bogus URL...
  4. SciTE for Ruby的配置
  5. shell-init: error
  6. golang 字段 序列化 反序列化 简介
  7. linux 时钟同步 chrony 简介
  8. Mach-O 二进制文件解析
  9. python3 信号量和线程池 semaphore ThreadPollExector
  10. python 多进程异常处理