composer require jenner/simple_fork
<span><span>require</span><span>path</span><span>/</span><span>to</span><span>/</span><span>SimpleFork</span><span>/</span><span>autoload</span><span>.</span><span>php</span></span>
<span><span>class</span><span>TestRunnable</span><span>extends</span><span>\Jenner\SimpleFork\</span><span>Runnable</span>{</span><span><span>/**</span></span><span><span> * 进程执行入口</span></span><span><span> * <span>@return</span> mixed</span></span><span><span> */</span></span><span><span>public</span><span>function</span><span>run</span>()</span><span> {</span><span><span>echo</span><span><span>"</span>I am a sub process<span>"</span></span><span>.</span><span>PHP_EOL</span>;</span><span> }</span><span>}</span><span><span>$process</span><span>=</span><span>new</span><span>\Jenner\SimpleFork\</span><span>Process</span>(<span>new</span><span>TestRunnable</span>());</span><span><span>$process</span><span>-></span>start();</span><span><span>class</span><span>Producer</span><span>extends</span><span>\Jenner\SimpleFork\</span><span>Process</span>{</span><span><span>public</span><span>function</span><span>run</span>(){</span><span><span>for</span>(<span>$i</span><span>=</span><span>0</span>; <span>$i</span><span><</span><span>10</span>; <span>$i</span><span>++</span>){</span><span><span>$this</span><span>-></span><span>cache</span><span>-></span>set(<span>$i</span>, <span>$i</span>);</span><span><span>echo</span><span><span>"</span>set {<span>$i</span>} : {<span>$i</span>}<span>"</span></span><span>.</span><span>PHH_EOL</span>;</span><span> }</span><span> }</span><span>}</span><span><span>class</span><span>Worker</span><span>extends</span><span>\Jenner\SimpleFork\</span><span>Process</span>{</span><span><span>public</span><span>function</span><span>run</span>(){</span><span><span>sleep</span>(<span>5</span>);</span><span><span>for</span>(<span>$i</span><span>=</span><span>0</span>; <span>$i</span><span><</span><span>10</span>; <span>$i</span><span>++</span>){</span><span><span>echo</span><span><span>"</span>get {<span>$i</span>} : <span>"</span></span><span>.</span><span>$this</span><span>-></span><span>cache</span><span>-></span>get(<span>$i</span>) <span>.</span><span>PHP_EOL</span>;</span><span> }</span><span> }</span><span>}</span><span><span>$memory</span><span>=</span><span>new</span><span>\Jenner\SimpleFork\IPC\</span><span>SharedMemory</span>();</span><span><span>$producer</span><span>=</span><span>new</span><span>Producer</span>();</span><span><span>$producer</span><span>-></span>setCache(<span>$memory</span>);</span><span><span>$worker</span><span>=</span><span>new</span><span>Worker</span>();</span><span><span>$worker</span><span>-></span>setCache(<span>$memory</span>);</span><span><span>$pool</span><span>=</span><span>new</span><span>\Jenner\SimpleFork\</span><span>Pool</span>();</span><span><span>$pool</span><span>-></span>submit(<span>$producer</span>);</span><span><span>$pool</span><span>-></span>submit(<span>$worker</span>);</span><span><span>$pool</span><span>-></span>start();</span><span><span>$pool</span><span>-></span>wait();</span>原创文章,转载请注明: 转载自始终不够
本文链接地址: SimpleFork php多进程并发框架
以上就介绍了SimpleFork php多进程并发框架,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号