增加 pcntl扩展
pcntl扩展可以支持php的多线程操作(仅限linux系统)
加载 pcntl 有两种方式
一种重新编译安装,在编译时加,configrue提示加上--enable-pcntl
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-pcntl
pcntl扩展可以支持php的多线程操作(仅限linux系统)

加载 pcntl 有两种方式
一种重新编译安装,在编译时加,configrue提示加上--enable-pcntl
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --enable-pcntl
1、首先看下phpize命令所在的目录  (我的目录/usr/bin/phpize)
如果没有找到的话 执行安装
yum install php53_devel   (请注意自己的版本)
安装完毕后。会生成phpize命令
2、去php.net下载相应版本的php源文件

http://php.net/releases/index.php

咱们以php-5.3.17 为例吧,解压后,进入相应的模块下
cd /php-5.3.17/ext/pcntl
#先执行phpize
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config   (请正确的指定php-config的目录)
#编译、安装
make && make install
这时候出了一个错误
./configure编译正常,但make出错
error: ‘PHP_FE_END’ undeclared here (not in a function)
解决方法:
源代码有错误,进入php-5.3.17目录
sed -i ‘s|PHP_FE_END|{NULL,NULL,NULL}|‘ ./ext/**/*.c
sed -i ‘s|ZEND_MOD_END|{NULL,NULL,NULL}|‘ ./ext/**/*.c
再重新make && make install

3、编译完毕后会生成了一个pcntl.so的文件。在php的model目录里

cd /root/php-5.3.17/ext/pcntl/modules

ls -l pcntl.so
-rwxr-xr-x 1 root root 82375 4月   1 11:38 pcntl.so
编辑/etc/php.ini,加入
extension=pcntl.so
4、重启apache和php
service httpd restart

/etc/init.d/php-fpm restart
5.进行测试是不是安装成功

在网页目录写一个php首页文件如下

<?php
    echo pcntl_fork();
?>

输出:数字 证明安装成功
本文来源http://www.cnblogs.com/dreamhome/p/3221069.html
本文来源http://bubuko.com/infodetail-109680.html

pcntl_fork()
在cli模式下实现多进程
创建 进程$pid = pcntl_fork();
如果==-1 创建失败,如果==0是一个子进程 否则是一个父进程
然后在cli模式下运行
基本步骤是   装pcntl扩展-》用pcntl_fork()创建进程-》在cli模式下运行
cli 模式 #/usr/bin/php /var/www/html/a.php 解释:/usr/bin/php这个是进入php的安装目录 /var/www/html/a.php这个是要运行的程序

php多进程的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. 取代SharedPreferences的多进程解决方案

    Android的SharedPreferences用来存储一些键值对, 但是却不支持跨进程使用. 跨进程来用的话, 当然是放在数据库更可靠啦, 本文主要是给作者的新库PreferencesProvid ...

  3. python 多进程使用总结

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

  4. Nginx深入详解之多进程网络模型

    一.进程模型        Nginx之所以为广大码农喜爱,除了其高性能外,还有其优雅的系统架构.与Memcached的经典多线程模型相比,Nginx是经典的多进程模型.Nginx启动后以daemon ...

  5. Python的多线程(threading)与多进程(multiprocessing )

    进程:程序的一次执行(程序载入内存,系统分配资源运行).每个进程有自己的内存空间,数据栈等,进程之间可以进行通讯,但是不能共享信息. 线程:所有的线程运行在同一个进程中,共享相同的运行环境.每个独立的 ...

  6. 进击的Python【第十章】:Python的socket高级应用(多进程,协程与异步)

    Python的socket高级应用(多进程,协程与异步)

  7. PHP的pcntl多进程

    PHP使用PCNTL系列的函数也能做到多进程处理一个事务.比如我需要从数据库中获取80w条的数据,再做一系列后续的处理,这个时候,用单进程?你可以等到明年今天了...所以应该使用pcntl函数了. 假 ...

  8. 初探PHP多进程

    h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...

  9. gdb进程调试,多进程调试

    1.单进程的调试 常规的通过gdb cmd这种方式开启调试,特别说明的是通过attach的方法附加到一个指定的进程上去进行调试,这种方法适合于调试一个已经运行的进程,具体用法:  gdb -p [pi ...

  10. python高级之多进程

    python高级之多进程 本节内容 多进程概念 Process类 进程间通讯 进程同步 进程池 1.多进程概念 multiprocessing is a package that supports s ...

随机推荐

  1. 隐式意图启动一个Activity

    隐式意图是通过指定一组动作或者属性实现,主要用于跨应用使用. 1.创建一个意图对象 Intent intent = new Intent(); 2.设置意图过滤器 intent.setAction(& ...

  2. Swift学习笔记-ARC

    Swift使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存.通常情况下,Swift 内存管理机制会一直起作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的 ...

  3. 反序列化问题的研究之java篇

    博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一 ...

  4. 泛型-List<T>

    声明一个int类型的泛型对象 List<int> list=new List<int>(); list.Add(44);//不用装箱 int i1=list[0];//也不会发 ...

  5. Python学习笔记 之 递归、二维数组顺时针旋转90°、正则表达式

    递归.二维数组顺时针旋转90°.正则表达式 1.   递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多 ...

  6. c#.NET微信自定义菜单

    private void customMenu() { //获取access_token string access_token = GetAccessToken(); StringBuilder s ...

  7. MySQL连表操作之一对多

    引入 当我们在数据库中创建表的时候,有可能某些列中值内容量很大,而且重复. 例子:创建一个学生表,按学校年纪班级分,表的内容大致如下: id name partment 1 xxx x学校x年级x班级 ...

  8. JS中匿名函数$(function(){ })和(function(){})()的区别

    “$(function(){ });” Jquery语法的匿名函数,用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在: (通过这样就可以在页面加载完成时通过ajax再异步加载一些数据) “ ...

  9. Yocto开发笔记之《Tip-stdlib库函数strtod返回nan错误》(QQ交流群:519230208)

    2015.04-imx_v2015.04_3.14.38_6ul_ga+g5d63276 (Jan 04 2016 - 18:07:08) FSL Community BSP : https://co ...

  10. ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务

    1.       Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有 ...