PHP的pcntl多进程应用实例
PHP可以同时处理多个事务使用的pcntl系列函数在多个过程。例如,我需要从数据库中获取数据,80w做一系列的后续处理。此时,有一个单一的过程吗你可以等到下一年。所以pcntl功能应用。
我想开始20个过程,分1-80w的数据分为20个部分,和主要过程等待所有子进程退出。
$ max = 800000;
工人= 20;
pid =阵列(美元);
($ i = 0;$ i <工人;$ + +){
{ } =我见美元美元pcntl_fork();
开关($它{ $我}){
案例1:
回波;
出口;
案例0:
参数数组(=美元
lastid= >美元/美元最大工人* $我,
混合=美元/美元马克思工人*($我+ 1),
);
美元-> executeworker(美元美元美元输入,输出,参数);
出口;
违约:
打破;
}
}
foreach(PIDS美元美元美元我= PID){
如果($ PID){
pcntl_waitpid($ PID,美元地位);
}
}
在这里,pcntl_fork出来时,它将返回一个PID值。在子过程中PID是0。在父进程中,它是子进程的PID(> 0)。如果PID是- 1,它意味着叉是错误的。
采用PID的主要过程,允许美元等所有过程结束,最后再数组
希望本文能对大家的PHP程序设计有所帮助。