摘要:
本文目的本文通过例子讲解linux环境下,使用php进行并发任务处理,以及如何通过pipe用于进程间的数据同步。PHP多进程通过pcntl_XXX系列函数使用多进程功能。注意:pcntl_XXX只能运行在php CLI(命令行)环境下,在web服务器环境下,会出现无法预期的结果,请慎用!管道PIPE 阅读全文
摘要:
<?php //fork.php $cmds = [ '/data/wwwroot/default/test1.php', '/data/wwwroot/default/test2.php', '/data/wwwroot/default/test3.php' ]; foreach($cmds as $cmd) { $pid = pcntl_fork(); ... 阅读全文
摘要:
我们在实际项目中或许会遇到php调用shell脚本的需求。下面就用简单案例在Centos环境下实践 准备 查看php.ini中配置是否打开安全模式 因为safe_mode配置项默认没有,那么我修改了php.ini中的disable_function选项,把其中一个被禁用的函数去掉,去掉【passth 阅读全文
摘要:
我们在项目开发经常需要做一些优化型测试,比如优化代码段,排查代码段效率问题,或者降低内存消耗成本。 阅读全文
摘要:
pcntl_fork创建子进程成功的话,系统就有了2个进程,一个为父进程,一个为子进程,父进程和子进程都继续向下执行,子进程的id号为$pid(父进程会获取子进程的$pid也就是$pid不为0,而子进程会获取$pid为0)在系统运行到$pid = pcntl_fork();时,在这个地方进行分支,父 阅读全文
摘要:
先简单来了解一下多进程 [来初步了解一下PHP多进程及简单demo] php的多进程是不是可以无限制的fork子进程?fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。 阅读全文
摘要:
二分查找的定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 算法的要求 从上面的定义我们可以知道,满足该算法的要求必须如下两点: 必须采用顺序存储结构。 必须按关键字大小有序排列。 算法 阅读全文
摘要:
expect基本介绍 expect是一个自动化交互套件,主要用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。如果在运维工作方面有大量的一体化操作,那么了解使用expect会节省很大时间。 比如登录跳板机,登录mysql这些流程操作需要经常输入密码回车,那么它就可以作为你的工具。 阅读全文
摘要:
将各种截然不同的函数接口封装成统一的API。 PHP中的数据库操作有MySQL,MySQLi,PDO三种,可以用适配器模式统一成一致,使不同的数据库操作,统一成一样的API。类似的场景还有cache适配器,可以将memcache,redis,file,apc等不同的缓存函数,统一成一致。 首先定义一 阅读全文
摘要:
通过注册树模式可以更加简单快捷的获取对象,在某个地方实例化了一个对象,可以将这个对象“保存”起来(放入可以全局使用的数组里),用的时候只需要提供 保存对象的时候 的那个标识即可,解决全局共享和交换对象,直接从该数组上获取即可。 为什么要采用注册树模式? 单例模式解决的是如何在整个项目中创建唯一对象实 阅读全文