PHP マルチスレッドに関する質問と回答

WBOY
リリース: 2016-06-23 14:14:11
オリジナル
790 人が閲覧しました

マルチスレッド php

インターネットでいくつかのデモを見ましたが、その多くは同じでした。自分のマシンでテストしてみたら、何か問題が発生しました。
//a.php
function runThread(){
$fp = fsockopen('localhost', $errno, $errmsg);
fputs($fp, "GET /a.php?act=b"); }

function a(){
$fp = fopen('result_a.log', 'w');
fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");
fclose($fp)

関数 b(){
$fp = fopen('result_b.log', 'w'); fp, ' に設定します。Date ('h:i:s', time() . "rn")
}

if(! _GET['act'])) $_GET['act'] = 'a';
if($_GET['act'] == 'a'){
a();
else if($_GET[' act'] == 'b') b();
?>

localhost/a.php にアクセスするたびに、レコードは result_a.log にのみ書き込まれます。 result_b.log. 記録のために、私の php 環境では fsocket 拡張機能を有効にできると確信しています。専門家からアドバイスをお願いします

ディスカッション (解決策) に返信してください

保存していくつか聞いてください。アドバイス


デフォルトの $_GET[ 'act'] は a() 関数を実行することになっているため localhost/a.php?act=b を実行して試してください

php のマルチスレッドが原因であるはずです

fputs のデータ パケット ヘッダーに何かがありません。
私の意見:

1 firebug を使用して、何を書くべきかを知り、リクエストのヘッダーを観察します。

2 fsock 一連の関数を放棄します。多くの場所でこれがサポートされていませんが、curl を使用してリクエストをシミュレートできます。

firebug を使用してエラーを確認しますか、それとも echo を使用してプログラムが実行されている場所を確認しますか?段階的な検査は行われませんでした。

さて、結び目を作る時間です

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