{"id":390,"title":"centos7.4\u4e0bphp7.25\u591a\u7ebf\u7a0bpthreads\u5b89\u88c5\u53cademo","good":0,"bad":0,"hit":3860,"created_at":"2018-08-05 03:10:19","content":"

php7\u7f16\u8bd1\u5b89\u88c5\u65f6\u8bb0\u5f97\u5f00\u542f--enable-maintainer-zts<\/span><\/p>

<\/span><\/p>

\u4e0b\u8f7dpthread\u6e90\u7801\uff1a<\/p>

https:\/\/github.com\/krakjoe\/pthreads<\/a> <\/p>

\u7f16\u8bd1\u5b89\u88c5<\/p>

<\/p>

\u7531\u4e8e\u5728linux\u4e0bphp\u662f\u4ee5fpm-fcgi\u6a21\u5f0f\u8fd0\u884c\u7684\uff0c\u6b64\u79cd\u6a21\u5f0f\u4e0b\u4e0d\u652f\u6301pthreads\uff0c\u4f1a\u62a5\u9519\u8bef\uff1a<\/span><\/span><\/p>

<\/span><\/span><\/p>

<b>Fatal error<\/b>:  The fpm-fcgi SAPI is not supported by pthreads in <b>Unknown<\/b> on line <b>0<\/b><br \/><\/p>

<\/p>

\u89e3\u51b3\u529e\u6cd5\uff1a\u627e\u5230php.ini\u7136\u540e\u590d\u5236\u4e00\u4efd\uff0c\u540d\u4e3aphp-cli.ini:<\/p>

-rw-r--r--   1 root root  70214 8\u6708   5 02:46 php-cli.ini<\/p>

-rw-r--r--   1 root root  70215 8\u6708   5 01:56 php.ini<\/p>

\u8fd9\u4e24\u4e2a\u6587\u4ef6\u7684\u5dee\u522b\u5728\u4e8ephp.ini\u4e2d\u4e0d\u8981\u5f00\u542fextesion=pthreads,\u800c\u5728php-cli.ini\u4e2d\u5f00\u542f\u6b64\u9879\uff1b<\/p>

\u8fd9\u6837php-fpm\u8fd0\u884c\u65f6\u751f\u6548\u7684\u662fphp.ini,\u800c\u4ee5cli\u6a21\u5f0f\u8fd0\u884cpthreads\u76f8\u5173\u7a0b\u5e8f\u65f6\uff0c\u8d77\u4f5c\u7528\u7684\u662fphp-cli.ini\u6587\u4ef6<\/p>

<\/p>

\u793a\u4f8b\uff08\u8981\u5728cli\u6a21\u5f0f\u4e0b\u8fd0\u884c,\u4e5f\u5c31\u662f\u50cfdos\u9ed1\u7a97\u53e3\u90a3\u79cd\u547d\u4ee4\u884c\u4e0b\u8fd0\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728\u4e00\u4e2a\u6587\u4ef6xx.php\u4e2d\u7528exce\u547d\u4ee4\u6765\u6267\u884c\u4e0b\u7684demo.php)\uff1a<\/p>

\u76f4\u63a5\u5728\u6d4f\u89c8\u5668\u4e2d\u8fd0\u884cdemo.php\u662f\u4f1a\u62a5\u9519\u7684\uff0c\u4f1a\u62a5\u627e\u4e0d\u5230pthread\u7c7b\uff0c\u56e0\u4e3a\u6d4f\u89c8\u5668\u4e2d\u8fd0\u884c\u8bf7\u6c42\u7684\u7684\u662fphp-fpm\uff0c\u4ed6\u8d77\u4f5c\u7528\u7684\u662fphp.ini\uff0c\u8fd9\u79cd\u6a21\u5f0f\u4e0d\u652f\u6301pthreads\uff0c\u800c\u4e14\u6211\u4eec\u5728php.ini\u4e2d\u4e5f\u6ca1\u6709\u5f00\u542fpthreads,\u6240\u4ee5\u62a5\u9519\uff1b\u800c\u4ee5cli\u6a21\u5f0f\u8fd0\u884c\u65f6\uff0cphp\u4f1a\u81ea\u52a8\u8bfb\u53d6php-cli.ini\u4e2d\u7684\u914d\u7f6e\uff0c\u8fd9\u91cc\u9762\u6709\u5f00\u542fpthreads\u6240\u6709\u7a0b\u5e8f\u53ef\u4ee5\u6b63\u5e38\u8fd0\u884c\uff1b<\/p>

<\/p>

demo.php<\/p>

<?php\n\n\/**\n * \u7528pthreads\u5199\u7684\u591a\u7ebf\u7a0bdemo,\u8981\u5728cli\u6a21\u5f0f\u4e0b\u8fd0\u884c\n * Class Request\n *\/\nclass Request extends Thread {\n    public $url;\n    public $response;\n    public function __construct($url) {\n        $this->url = $url;\n    }\n    public function run() {\n        $this->response = file_get_contents($this->url);\n    }\n}\necho time().'<br\/>';\n$chG = new Request("http:\/\/www.hu-rong.com");\n$chB = new Request("http:\/\/www.baidu.com");\n$chG ->start();\n$chB ->start();\n$chG->join();\n$chB->join();\n\necho $gl = $chG->response;\necho $bd = $chB->response;\necho time();<\/pre>

<\/p>"}