swoole与pcntl相比有哪些不同的点呢
Admin 2022-09-07 群英技术资讯 1282 次浏览
这篇文章主要介绍了“swoole与pcntl相比有哪些不同的点呢”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇swoole与pcntl相比有哪些不同的点呢文章都会有所收获,下面我们一起来看看吧。
PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。
PCNTL现在使用了ticks作为信号处理的回调机制,ticks在速度上远远超过了之前的处理机制。 这个变化与“用户ticks”遵循了相同的语义。
您可以使用declare() 语句在程序中指定允许发生回调的位置。这使得我们对异步事件处理的开销最小化。在编译PHP时 启用pcntl将始终承担这种开销,不论您的脚本中是否真正使用了pcntl。
有一个调整是PHP 4.3.0之前的所有pcntl脚本要使其工作,要么在期望允许回调的(代码)部分使用 declare() ,要么使用declare()新的全局语法 使其在整个脚本范围有效。
Note: 此扩展在 Windows 平台上不可用。
swoole增加了多进程管理模块来替代PHP的pcntl,它相比pcntl的不同点是:
swoole_process提供了pcntl没有的进程间通信swoole_process支持重定向标准输入和输出,在子进程内echo或者读键盘输入可以被重定向为从管道中取数据子进程可以异步化
进程间通信(IPC)
子进程和父进程之间可以通过管道通信,传递数据。IPC在多进程编程中经常用到,PHP的pcntl模块没有提供IPC的功能,所以功能有局限。而swoole_process提供了这些功能,并且封装了接口。只需调用接口即可完成进程间通信。
$worker_num = 8;
for($i = 0; $i < $worker_num; $i++)
{
$process = new swoole_process('callback_function', $redirect_stdout);
$pid = $process->start();
$workers[$pid] = $process;
}
function callback_function(swoole_process $worker)
{
//echo "Worker: start. PID=".$worker->pid."\n";
//recv data from master
$recv = $worker->read();
echo "From Master: $recv\n";
//send data to master
$worker->write("hello master\n");
sleep(2);
$worker->exit(0);
}read/write 2个方法就是向管道内读写数据。主进程内可以通过write/read 向子进程写入,读取数据。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在php中有两个函数,能够实现数字补零,str_pad()sprintf() 函数1: str_pad顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)其中填补后的长度必须是个正整数,填补位置有三个选项,左边:STR_PAD_LEFT,右边:STR_PAD_RIGHT,两
php数组合并的方法:1、array_merge数字key被归为0,包含相同的key,则保留第二个key值;2、array_merge_recursive数字key为0,包含相同key时,合成数组;3、array_combine创建新数组。
php性能优化的解决方法你知道怎么操作吗?性能优化可以分为两个方向,一个是页面加载的快慢,另一个是页面使用起来是否流畅。下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
swoole重启的方法:可以通过$swoole->reload(),或者\swoole_process::kill($master_pid,SIGUSR1),或者直接kill -USR1 master_pid等方法平滑重启。
本文将继续给大家介PHP算法系列知识,正如标题所述,这次则是教大家怎么通过给定的三个数来判断能不能构成直角三角形,我可以肯定至少百分之99的小伙伴,在学生时代都做过这类数学题目!!!
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008