pcntl在windows下无法使用,linux编译php时加上参数--enable-pcntl 即可。第一次使用pcntl模块,遇到了一些坑也慢慢填上了,这里简单记录下。

  1. 子进程之间变量无法共享。

  2. 子进程完成,记得加上exit(),子进程退出,否则会有坑。

 1 <?php
 2 $pid_dir = __DIR__.'/pid_files/';
 3
 4
 5 for ($i=0;$i<3;$i++){
 6     $pid = pcntl_fork();
 7     if ($pid == -1){
 8         var_dump('fork failed');
 9     }
10
11     if ($pid == 0){
12         //子进程代码 ,返回当前进程id
13         $pid = posix_getgid();
14         //返回当前父进程标识
15         $ppid = posix_getppid();
16         $r = rand(0,100);  //随机数
17         //创建一个文件
18         //file_put_contents($pid_dir."fork_child_process_{$i}_{$ppid}_{$pid}_{$r}",$e);
19         touch($pid_dir."fork_child_process_{$i}_{$ppid}_{$pid}_{$r}");
20         //注意这里子进程完成,记得加上exit(),子进程退出,否则会有坑
22         exit();
23     }
24 }
25
26
27 $pid = posix_getpid();
28 $ppid = posix_getppid();
29 $r = rand(0,100); //随机数
30 touch("$pid_dir/fork_process_pid_{$ppid}_{$pid}_$r");
31
32
33 sleep(1000); // ps aux | grep php

  参考: https://segmentfault.com/a/1190000003503671

  

php多进程pcntl学习(一)相关推荐

  1. python多进程线程学习_python进程、线程的学习心得

    什么是多线程竞争? 线程不是独立的,同一个进程里的线程,线程间的数据是共享的,多线程操作时,容易造成数据的混乱,线程不安全. 如何解决? 互斥锁. 好处:能够保证某段关键代码执行时,只有一个线程操作, ...

  2. python 多进程使用总结

    python中的多进程主要使用到 multiprocessing 这个库.这个库在使用 multiprocessing.Manager().Queue时会出问题,建议大家升级到高版本python,如2 ...

  3. 进军IT与安全行业:推荐学习路线图

    进军IT与安全行业:推荐学习路线图--转载于其它论坛博客       IT是一个生机勃勃的行业,不少年轻人选择IT作为自己的职业规划与选项,希望能够在IT行业里挖掘自己的潜力,奔一个好的前程.但很多朋 ...

  4. 对PHP并发、多进程、多线程、异步处理、分布式系统的一些了解

    目录 并发 基本概念 PHP并发模型 多进程 基本概念 进程 多进程 并发多任务 任务调度 PHP实现多进程 PCNTL PHP-FPM Swoole 多线程 基本概念 线程 多线程 PHP实现多线程 ...

  5. IT安全行业学习路线图

    进军IT与安全行业:推荐学习路线图--转载于其它论坛博客 IT是一个生机勃勃的行业,不少年轻人选择IT作为自己的职业规划与选项,希望能够在IT行业里挖掘自己的潜力,奔一个好的前程.但很多朋友发现,IT ...

  6. python tkinter 表格_python学习笔记(Tkinter编程利用Treeview实现表格自动更新)

    博主今天总结这段时间抽空写的一个GUI编程项目 功能是查看本地打印机队列,可选择指定队列重新打印 直接上图 UI设计包括3个区域左上方,右上方和下方列表区域 使用网格grid方法来分配位置 下面是界面 ...

  7. 基于对抗生成网络的滚动轴承故障检测方法

    人工智能技术与咨询 点击蓝字 · 关注我们 来源:<人工智能与机器人研究> ,作者华丰 关键词: 不平衡工业时间序列:异常检测:生成对抗网络:滚动轴承数据 关注微信公众号:人工智能技术与咨 ...

  8. php pcntl 多进程学习

    1.捕获子进程退出(监听SIGCHLD信号,然后调用 pcntl_wait 函数) declare(ticks=1);pcntl_signal(SIGCHLD, "sig_handler&q ...

  9. Python学习笔记:多线程和多进程(转1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. MERGE INTO 解决大数据量 10w 更新缓慢的问题
  2. 美国的工资、俄罗斯的妻子、英国的房子、中国的饮食
  3. 网络:TCP协议3次握手4次挥手
  4. Tomcat配置Web虚拟目录
  5. centos 一键安装ftp 配置_CentOS快速搭建FTP(初级-四步)
  6. 【Keras】学习笔记(一)
  7. 如何将exe文件在linux下执行,如何在Linux系统下查找可执行文件
  8. 感知哈希算法(Perceptual hash algorithm)的OpenCV实现
  9. 【转载】SQL SERVER 游标
  10. android 串口调试助手_Arduino入门 第八节-串口通讯(基础篇)
  11. 7-14 与数据库相连
  12. iphone开发常用编码
  13. mysql 查询语法基础_入门MySQL——查询语法练习
  14. 博为峰Java技术文章 ——JavaSE Swing焦点事件的处理
  15. abb变频器如何拷贝_关于ACS800变频器拷贝参数.pdf
  16. 程序化交易高手的交易心得 分享~
  17. 【惯性导航姿态仪】 04 -Mini AHRS 姿态解算说明
  18. python脚本案例-python+adb命令实现自动刷视频脚本案例
  19. OpenCV C++案例实战十八《抖音特效——“蓝线挑战”》
  20. VS2012编译和调用gdal

热门文章

  1. mysql binlog 常用的命令
  2. Atomic原子类和Unsafe魔法类 详解
  3. Spring Boot 实现微信小程序订阅模板消息
  4. SpringBoot 自动配置原理
  5. Maven中dependencyManagement的使用
  6. Nacos服务发现实践
  7. 高可用集群的脑裂问题
  8. cookie中转注入
  9. c# datagridview 中DataSource的使用总结
  10. 你真会用setTimeout吗?