• PHP多进程编程


    1.概述

    PCNTL函数和POSIX函数。

    PCNTL函数需要在编译时加上--enable-pcntl;至于POSIX函数默认开启的,只要不再编译时disable就可以。

    常用函数:pcntl_fork,pcntl_getmypid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,posix_kill,posix_getpid

    2.创建子进程

    <?php
    $pid = pcntl_fork();//程序从这一行开始分成两条执行线路,$pid的值对于父进程和子进程分别是子进程pid和0
    //以下代码子进程和父进程都会执行,根据$pid的值来区分父子进程的代码逻辑
    if($pid>0){
            //to do 父进程代码
    }elseif(!$pid){
            //todo 子进程代码
    }else{
            //创建子进程失败
    }
    while(pcntl_wait($status)!=0);
    //ps:如果pcntl_fork被放置在循环结构中,则子进程会在从自己诞生的那个循环开始继续向下执行,这个是容易错漏的地方

    3.信号管理

    函数:pcntl_signal,pcntl_signal_dispatch

    信号:SIGINT(使用ctrl-c结束进程时),SIGTERM(使用kill pid时),SIGUSR1,SIGUSR2,SIGCHLD(子进程结束时会向父进程发送此信号)

  • 相关阅读:
    xt
    UVA 10200 Prime Time (打表)
    CodeForces 540B School Marks
    CodeForces 540C Ice Cave (BFS)
    poj 3250 Bad Hair Day(栈的运用)
    hdu A Magic Lamp
    hdu 4325 Flowers(区间离散化)
    hdu 5500 Reorder the Books
    V2X之标准
    V2X的前生今世
  • 原文地址:https://www.cnblogs.com/flytome/p/3953115.html
Copyright © 2020-2023  润新知