一、php中pcntl_fork函数概述
pcntl_fork()函数是php中用于创建子进程的一个函数,返回创建的子进程的pid。
该函数创建子进程具体fork的过程:
(1)调用该函数即创建一个子进程,创建成功父进程返回子进程的pid,子进程返回0;
(2)创建子进程实际上对父进程的一个拷贝,共享代码空间,拷贝父进程的数据,也就是说父进程改变父进程的数据,子进程改变子进程的数据变量等;
二、示例代码分析
代码示例:
<?php $curr_pid = posix_getpid();//获取当前的进程id //将当前进程的id写入文件中 echo '当前进程:'.$curr_pid.PHP_EOL; //开始创建子进程 $son_pid = pcntl_fork();//返回子进程的id //查看当前进程 echo '创建子进程之后当前的进程为:'.posix_getpid().PHP_EOL; //创建了子进程之后 if($son_pid > 0){ echo '子进程id:'.$son_pid.PHP_EOL; }
以上代码执行后结果为:
示例代码分析:
(1)发现创建了子进程之后,系统会切换到子进程中,而子进程中的代码是从含有pcntl_fork函数的那行执行的
(2)创建子进程之后,子进程的代码段是拷贝pcntl_fork函数及之后的代码段,之前的代码段并不拷贝,但是具体的数据变量子进程仍然会拷贝
(3)可见,fork之后程序会分叉执行,即子进程执行
三、pcntl_fork的业务场景举例
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍php创建类并调用的实例方法,包括了php创建类并调用的实例方法的使用技巧和注意事项,需要的朋友参考一下 PHP类定义 PHP 定义类通常语法格式如下: 解析如下: 类使用 class 关键字后加上类名定义。 类名后的一对大括号({})内可以定义变量和方法。 类的变量使用 var 来声明, 变量也可以初始化值。 函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问
本文向大家介绍Python使用multiprocessing创建进程的方法,包括了Python使用multiprocessing创建进程的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python使用multiprocessing创建进程的方法。分享给大家供大家参考。具体分析如下: 进程可以通过调用multiprocessing的Process进行创建,下面代码创建两个进程。 运行结
本文向大家介绍python基于multiprocessing的多进程创建方法,包括了python基于multiprocessing的多进程创建方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python基于multiprocessing的多进程创建方法。分享给大家供大家参考。具体如下: 定义进程的另一种方法,继承Process类,并实现run方法: 希望本文所述对大家的Python程序
本文向大家介绍PHP实现动态创建XML文档的方法,包括了PHP实现动态创建XML文档的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现动态创建XML文档的方法。分享给大家供大家参考,具体如下: 一. 代码 conn.php index.php rss.php 二. 运行结果 PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用: 在线XML/JSON互相转换工具:
本文向大家介绍python执行子进程实现进程间通信的方法,包括了python执行子进程实现进程间通信的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python执行子进程实现进程间通信的方法。分享给大家供大家参考。具体实现方法如下: a.py: b.py: 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍PHP中创建和验证哈希的简单方法实探,包括了PHP中创建和验证哈希的简单方法实探的使用技巧和注意事项,需要的朋友参考一下 PHP 5.5.0 带来了一份完整的全新特性与函数的列表。全新API之一就是Password Hashing API.它包含4个函数:password_get_info(), password_hash(), password_needs_rehash(),和p