10.swoole学习笔记--进程队列通信

<?php
//进程仓库
$workers=[];

//最大进程数
$worker_num=2;

//批量创建进程
for($i=0;$i<$worker_num;$i++){
    //创建子进程
    $process=new swoole_process("doProcess",false,false);
    //开启队列--类似于全局函数
    $process->useQueue();
    //启动进程并获取进程id
    $pid=$process->start();
    //存入进程数组
    $workers[$pid]=$process;
}

//创建进程对应的执行函数
function doProcess(swoole_process $process){
    $recv=$process->pop();//8192
    echo "从主进程获取到数据:$recv \n";
    sleep(5);
    $process->exit(0);
}

//主进程向子进程添加数据
foreach($workers as $pid=>$process){
    $process->push("Hell 子进程 $pid \n");
}

//等待子进程结束回收资源
for($i=0;$i<$worker_num;$i++){
    $ret=swoole_process::wait();//等待执行完成
    $pid=$ret[‘pid‘];
    unset($workers[$pid]);
    echo "子进程$pid\n";
}
?>

原文地址:https://www.cnblogs.com/zouke1220/p/8441465.html

时间: 2024-09-29 23:30:57

10.swoole学习笔记--进程队列通信的相关文章

9.swoole学习笔记--进程事件

<?php //进程数组 $workers=[]; //创建进程的数据量 $worker_num=3; //创建启动进程 for($i=0;$i<$worker_num;$i++){ //创建单独新进程 $process=new swoole_process("doProcess"); //启动进程并获取进程id $pid=$process->start(); //存入进程数组 $workers[$pid]=$process; } //创建进程对应的执行函数 func

操作系统学习笔记----进程/线程模型----Coursera课程笔记

操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上

Linux 程序设计学习笔记----进程管理与程序开发(下)

转载请注明出处:http://blog.csdn.net/suool/article/details/38419983,谢谢! 进程管理及其控制 创建进程 fork()函数 函数说明具体参见:http://pubs.opengroup.org/onlinepubs/009695399/functions/fork.html 返回值:Upon successful completion, fork() shall return 0 to the child process and shall re

Linux 程序设计学习笔记----进程管理与程序开发(上)

转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢! Linux进程存储结构和进程结构 可执行文件结构 如下图: 可以看出,此ELF可执行文件存储时(没有调入内存)分为代码区.数据区和未出花数据区三部分. 代码区:存放cpu的执行的机器指令. 数据区:包含程序中的已经初始化的静态变量,以及已经初始化的全局变量. 未初始化数据区:存入的是未初始化的全局变量和未初始化的静态变量. 现在在上面的程序代码中增加一个int的静态变量

ucos实时操作系统学习笔记——任务间通信(消息)

ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了queue机制还要用mbox呢,只要设置queue的msg只有一个不就行了?其实很简单,就是为了节约资源,因为使用queue的话需要专门描述queue的机构体os_q,同时需要分配一段内存用来存放msg,而如果直接使用mbox机制的话,就好多了,节约..... 首先从mbox的创建开始,mbox创建的函

操作系统学习笔记 进程

进程的定义 1. 一个正在执行中的程序: 2. 一个正在计算机上执行的程序实例: 3. 能够分配给处理器并由处理器执行的实体: 4. 一个具有以下特征的活动单元:一组指令序列的执行,一个当前状态和相关系统资源的集合: 由一组元素(包括两个基本元素:程序代码和代码相关的数据集)组成的实体,如果处理器开始执行该代码,这个执行实体就称为进程.在进程执行的任意一个时刻,都可以唯一的被表示为以下元素: 标识符:和进程相关的唯一标示,用以区分不同的进程: 状态:执行态,阻塞态,就绪态等: 优先级:相对于其他

操作系统原理学习笔记--进程管理

标签: 数据结构primitive存储算法io作业 2012-09-01 16:50 6603人阅读 评论(1) 收藏 举报  分类: [OS](4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 进程管理 要点: 基础:进程描述及控制 策略:进程调度 实现:互斥与同步 避免:死锁与饥饿 解决:几个经典问题 进程的引入 程序的顺序执行 源代码程序,目标程序和可执行程序 程序执行:编辑,编译,链接,执行 程序的结构:顺序,分支,循环结构 程序执行的特征:顺序性,封闭性,可再现性 程序并发

9.swoole学习笔记--创建进程

<?php //进程数组 $workers=[]; //创建进程的数据量 $worker_num=3; //创建启动进程 for($i=0;$i<$worker_num;$i++){ //创建单独新进程 $process=new swoole_process("doProcess"); //启动进程并获取进程id $pid=$process->start(); //存入进程数组 $workers[$pid]=$process; } //创建进程对应的执行函数 func

操作系统学习笔记——进程

本文是本人操作系统课程的笔记,因为是所谓的"双语授课",所以笔记也有些中英夹杂. 3.1进程 3.1.1概念 A process is a program in execution. 3.1.2进程包括 text section     :        the program code data section    :        global variables pc                       :        he value of program coun