Rex

基于名字自动发布之多进程(3)

*爱你&永不变心* 提交于 2019-12-10 11:49:30
基于名字自动发布之多进程(3) 项目地址: https://gitee.com/lookingdreamer/RexDeploy_v1 流程图 为什么选择多进程? 随着应用越来越多,单进程的运行已经严重的拖慢了速度.所以多进程就应运而生了.为什么不是多线程?因为rex本身的框架都是采用的多进程.且多进程相对多线程来说要稳定得多.项目本身也去尝试了多线程,但在兼容性上出现了问题.索性就全部按照多进程去设计和开发. 多进程构建思路 日常生活的比喻 假设商店最大容纳人数为5个人,一共有12个人.只能等前面5个人进去出来之后,后面的5个人才能进入,不足5个人的全部进去 转换为数学问题 将12个人编号为0到12号 #!/bin/perl my ($start,$maxchild,$max,%hash_pids) = (0,5,12) ; for(my $g=0; $g < $max ;){ $startIndex = $g ; $endIndex = $g + $maxchild; if($endIndex > $max){ $endIndex = $max; } $start = $start + 1 ; print("\r\n开始第$start次并发控制:($startIndex - $endIndex) \r\n"); for($i=$startIndex;$i<$endIndex;