PHP はマルチスレッドをサポートしていませんが、回避策があることをどこでも読みました。しかし、 PHP がマルチスレッドをサポートしていないのはなぜでしょうか? サーバー側のスクリプト言語の場合、これは明らかな省略のように思えます。
2 に答える
この URL を読んで、あなたの助けになると思います。
PHP マルチスレッド – 偽装
http://w-shadow.com/blog/2007/08/20/php-multithreading-faking-it/
PHP は実際にはマルチスレッド自体をサポートしていませんが、「偽の」マルチスレッドを行う方法はいくつかあります。PHPClasses.org ニュースレターで見たものを次に示します。
このクラスは、コマンドライン (または同様のもの) から PHP スクリプトを実行するのではなく、Web サーバーで使用することを意図していることに注意してください。PHP をスタンドアロンのスクリプト言語として使用している場合に試すことができるいくつかの代替手段については、この投稿の最後を確認してください。
数年後に編集: pthreads
PHP マルチスレッドに使用できますが、本当に使いたいですか?
pthreads
多くのホスティング環境で利用できるかどうかはわかりません。率直に言って、私は急いで調べようとはしていません。
多くのアプリケーションに対する PHP の最大の強みの 1 つは、その分離です。1 つのプロセス、1 つの要求です。マルチプロセッシングは、通常、リクエスト中にジョブをキューに入れ、別の場所で実行することによって行われます。たとえば、Laravel には「キュー」があります: https://laravel.com/docs/5.7/queues
PHP はマルチスレッドを念頭に置いて書かれておらず、それを追加するには多大な労力 (基本的には 100% の書き直し) が必要になるためです。
PHP はかなり巨大な山であると言う人もいます: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/。その観点から、スレッド化が含まれていないことは驚くべきことではありません。