5

PHP はマルチスレッドをサポートしていませんが、回避策があることをどこでも読みました。しかし、 PHP がマルチスレッドをサポートしていないのはなぜでしょうか? サーバー側のスクリプト言語の場合、これは明らかな省略のように思えます。

4

2 に答える 2

10

この URL を読んで、あなたの助けになると思います。

PHP マルチスレッド – 偽装

http://w-shadow.com/blog/2007/08/20/php-multithreading-faking-it/

PHP は実際にはマルチスレッド自体をサポートしていませんが、「偽の」マルチスレッドを行う方法はいくつかあります。PHPClasses.org ニュースレターで見たものを次に示します。

マルチスレッド シミュレーション

このクラスは、コマンドライン (または同様のもの) から PHP スクリプトを実行するのではなく、Web サーバーで使用することを意図していることに注意してください。PHP をスタンドアロンのスクリプト言語として使用している場合に試すことができるいくつかの代替手段については、この投稿の最後を確認してください。

于 2012-08-27T19:40:41.123 に答える
-3

数年後に編集: pthreadsPHP マルチスレッドに使用できますが、本当に使いたいですか?

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/。その観点から、スレッド化が含まれていないことは驚くべきことではありません。

于 2012-08-27T19:21:15.963 に答える