php完成多历程简朴来讲就三步:建立子历程,治理子历程,处置惩罚子历程。说起来简朴,个中涉及到的学问倒是不少,比如说你得晓得每一个历程都有一个历程号(pid),还得晓得命令行是怎样实行php文件之类的。(引荐进修:PHP视频教程)
php多历程须要pcntl,posix扩大支撑,能够经由过程 php -m 检察。
第一步的建立子历程,用到的是pcntl_fork()函数,函数返回值一般为0,失利时返回-1。我先举一个建立子历程的直观小栗子:
$ppid = posix_getpid(); $pid = pcntl_fork(); if ($pid == -1) { throw new Exception('fork子历程失利!'); } elseif ($pid > 0) { cli_set_process_title("我是父历程,我的历程id是{$ppid}."); sleep(30); // 坚持30秒,确保能被ps查到 } else { $cpid = posix_getpid(); cli_set_process_title("我是{$ppid}的子历程,我的历程id是{$cpid}."); sleep(30); }
第二步的治理子历程,运用的是信号。简朴来讲,就是父历程里运用两个函数pcntl_signal()和pcntl_signal_dispatch,担任给子历程装置信号处置惩罚器和分发事情。 这个步骤就先云云简朴引见一下,由于涉及到一个回调函数的观点,今后我会补上更周全地内容。
第三步的处置惩罚子历程,也是须要两个函数。一个是发送停止信号的posix_kill()函数,一个是守候子历程状况的pcntl_waitpid()函数,如许就能够完成跟子历程共同完成的使命的目标了。
所以,后端开辟就是如许,许多以为会庞杂的东西,实在步骤很清晰,基础都属于用到的学问多,用到的函数却不多如许。所以入门的时刻就硬着头皮学下去好了,要置信本身总有一天能够很清晰邃晓。
以上就是php是单历程照样多历程的细致内容,更多请关注ki4网别的相干文章!