ホームページ > バックエンド開発 > PHPチュートリアル > phpのpthreadのバックグラウンド処理について教えてください!

phpのpthreadのバックグラウンド処理について教えてください!

WBOY
リリース: 2016-06-13 12:06:34
オリジナル
995 人が閲覧しました

phpのpthreadバックグラウンド処理について教えてください。 ! !
特定のリクエストの後にバックグラウンド スレッドを作成し、それを常に実行したいと考えています。このスレッドは現在のリクエストをブロックしません。

実装プロセス中に、バックグラウンド スレッドが現在のリクエストをブロックし、ページがデータがない状態で待機することが判明しました。Thread::detach が実行されると、次のようなセグメンテーション エラーが発生します。公式文書ではこの方法の使用を推奨していません。このエラーと関係があるかどうかはわかりません:

[Sun Sep 14 11:13:03.819745 2014] [core:notice] [pid 14343] AH00052: child pid 14847 exit signal Segmentation fault (11)
ログイン後にコピー


ありがとうございます。
------解決策----------------------
デタッチする必要はありません。子プロセスが終了するまで待つ必要があります。もちろんリクエストはブロックされます。

デタッチは既存の拡張機能と競合する可能性が高くなります。

この機能を実装するにはメッセージ キューを使用することをお勧めします。
------解決策のアイデア- ---------------------
なぜマルチスレッドを使用するのでしょうか?これは 1 行のコードであり、現在のプロセスをブロックすることはありません。
コードは次のとおりです:
exec("php task.php > /dev/) null &")

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート