巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
建站资讯News

PHP历程通讯根本之旌旗灯号

0
一佰互联网站扶植(www.taishanly.com) 宣布时辰:2020-04-26 09:02:38 阅读数: 104

操纵旌旗灯号通讯。能够操纵kill -l 来查抄以后体系的旌旗灯号范例。 每一个旌旗灯号所代表的的具体寄义,请查抄我的这篇文章://www.taishanly.com/article/106040.htm 操纵旌旗灯号的时辰能够经由进程php --version 来查抄以后PHP的版本。已决议操纵哪一种体例来停止历程间的旌旗灯号通讯。

[root@roverliang ipc]# php --versionPHP 5.6.24 (cli) (built: Aug 15 2016 19:14:02)Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

操纵pcntl_signal_dispatch 函数 须要PHP 版本(PHP 5 >= 5.3.0, PHP 7)

若是PHP版本小于5.3.一些至公司能够会低于这个版本。这个时辰会操纵 declare(ticks=1),意义为每履行一条初级指令, 就会去检测是不是呈现该旌旗灯号。具体的先容能够查抄 //www.taishanly.com/article/48340.htm

官网诠释以下:Tick(时钟周期)是一个在 declare 代码段中诠释器每履行 N 条可计时的初级语句就会产生的事务。N 的值是在 declare 中的 directive 局部用 ticks=N 来指定的。

那末甚么是初级语句呢:以下代码所示:

  for ($i = 0; $i < 3; $i++) {    echo $i.PHP_EOL;  }

那末这个for 轮回中就含有三条初级指令。每输入一条$i。就会去检测下是不是产生了已注册的事务,不可思议,如许效力是比拟低的。以是若是检测到本身的PHP大于即是5.3 。就操纵pcntl_singal_dispath 来停止旌旗灯号派送。

主历程在启动的时辰注册一些旌旗灯号处置函数。

/** * @param $signal 旌旗灯号 */function signalHandal($signal){  switch ($signal) {    case SIGINT:      //do something      break;    case SIGHUP:      //do something      break;    default :      //do something      break;  }}

而后将旌旗灯号处置器与旌旗灯号处置函数绑定:

//按照差别的旌旗灯号,装置差别的旌旗灯号处置器pcntl_signal(SIGINT, "signalHandal");pcntl_signal(SIGHUP, "signalHandal");pcntl_signal(SIGUSR1, "signalHandla");

在子历程监听旌旗灯号,若是呈现该旌旗灯号,就挪用预装置的旌旗灯号处置函数

//分派旌旗灯号。pcntl_signal_dispatch($signal);

咱们来清算下思绪: 1、界说旌旗灯号产生所须要处置事务的函数 2、将旌旗灯号和旌旗灯号处置函数绑定,称为旌旗灯号装置。 3、旌旗灯号监听或散发,呈现旌旗灯号挪用已装置的旌旗灯号。

懂得好下面的旌旗灯号概念,咱们来看一个demo:

<?php$parentpid = posix_getpid();echo "parent progress pid:{$parentpid}";//界说一个旌旗灯号处置函数function sighandler($signal) {  if ($signal == SIGINT) {    $pid = getmypid();    exit("{$pid} process, Killed!".PHP_EOL);  }}//php version < 5.3 .每履行一条初级指令,就查抄一次是不是呈现该旌旗灯号。效力消耗很大。//declare(ticks=1);$child_list = [];//注册一个旌旗灯号处置器。当收回该旌旗灯号的时辰对挪用已界说的函数pcntl_signal(SIGINT, "sighandler");for($i = 0; $i < 3; $i++) {  $pid = pcntl_fork();  if ($pid == 0) {    //子历程    while (true) {      //挪用已装置的旌旗灯号旌旗灯号处置器,为了检测是不是有新的旌旗灯号期待dispatching      pcntl_signal_dispatch();      echo "I am child: ".getmypid(). " and i am running !".PHP_EOL;      sleep(rand(1,3));    }  } elseif($pid > 0) {    $child_list[] = $pid;  } else {    die("fork fail!".PHP_EOL);  }}sleep(5);foreach ($child_list as $key => $pid) {  posix_kill($pid, SIGINT);}sleep(2);echo "{$parentpid} parent is end".PHP_EOL;

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。更多资讯:tags标签

上一篇:PHP历程通讯根本之旌旗灯号量与同享内存通讯
下一篇: PHP 旌旗灯号办理常识清算汇总
[前往消息列表]

相干消息more

28
03月
若何注册网站

简介:跟着互联网的飞速成长,操纵网站来进步公司和小我品牌影响力已是一定成长趋向。在这类环境下对全部网站的经营和保护将会变得加倍具备挑衅性... >>概况

05
04月
用旗舰级三摄主攻中端市场,三星手机强势回归

简介:12月10日,三星电子在北京宣布了旗下新款中端智妙手机Galaxy A8s。这是一款在中国市场寄与厚望的机型。亲临宣布会现场的三星电子... >>概况

27
04月
清点PHP和ASP.NET的10大对照!

在网上服装服装服装服装服装论坛t.vhao.nett.vhao.nett.vhao.nett.vhao.nett.vhao.net,老是有成千盈百的文章和帖子在会商 PHP 和 ASP.NET,事实谁才是更好的平台?不过很惋惜,大局部人的概念老是带有成见的,人... >>概况

05
04月
实体店若何疾速引留连接主顾?

简介:跟着办事的无穷化,终究门店应当从一个商品畅通场合转变为一个办事休会中间,让主顾在购物的进程中感受到一种欢愉、一份被尊敬、一份真实的科技... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站