ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルでマルチスレッド非同期リクエストを実装する 3 つの方法

PHP_PHP チュートリアルでマルチスレッド非同期リクエストを実装する 3 つの方法

Jul 13, 2016 am 10:40 AM
php 存在する 成し遂げる 非同期 方法 バージョン 単純 聞く

インターネット上でさまざまなバージョンの PHP 非同期リクエスト メソッドを見てきましたが、ここでいくつかの一般的なメソッドを簡単にまとめます

1. CURL を使用してワンステップ リクエストを実装します

CURL 拡張機能はその 1 つです。これは、開発プロセスで最も一般的に使用されるメソッドであり、POST/GET などの HTTP リクエストをシミュレートし、データを取得して抽出し、「標準出力」(stdout) に表示できる強力な HTTP コマンド ライン ツールです。

例:

コードをコピーします コードは次のとおりです:

$cl =curl_init();
$curl_opt = array(CURLOPT_URL, 'http://www.uncletoo. com/demo .php',
CURLOPT_RETURNTRANSFER, 1,
curl_setopt_array($cl, $curl_opt);
curl_close($ch);

CUROPT_TIMEOUT 属性のため、最小値は 1 です。これは、クライアントが 1 秒待機する必要があることを意味します。これは、CURL メソッドを使用する場合の欠点でもあります

2 非同期リクエストを実装するには、popen() 関数を使用します


。構文形式: Popen(command, mode) 例:



コードをコピー
コードは次のとおりです: $file = Popen("/bin/ls","r ");
//実行するコードは次のとおりです
/ /...
pclose($file);
?>


popen() 関数は、プロセスを指すパイプを直接開きます。すぐに反応します。ただし、この機能は読み取りまたは書き込みのいずれか単一であり、同時実行数が多いと大量のプロセスが生成され、サーバーに負担がかかります。

さらに、例のように、プログラム終了後に pclose() を使用してプログラムを閉じる必要があります。


3. fscokopen() 関数を使用して非同期リクエストを実装します


通常、この関数は、電子メール送信関数などのソケット プログラミングを開発するときに使用します。この関数を使用する前に、PHP.ini でallow_url_fopen オプションを有効にする必要があります。さらに、変更する場合は、ヘッダー部分を自分で手動で切り離す必要があります。 例:



コードをコピーします
コードは次のとおりです: $fp = fsockopen("www.uncletoo.com/demo.php", 80, $errno, $errstr, 30); if (! $fp) { echo "$errstr ($errno)
n";
} else {
$out = "GET /index.php / HTTP/1.1rn"; = "ホスト : www.uncletoo.comrn";
$out .= "接続: Closernrn";

fwrite($fp, $out);
/*ここでは実行結果は無視されます
*テスト中にオンにすることができます
while (!feof($ fp)) {
echo fgets($fp, 128);
}*/
fclose($fp);
}


PHP 自体にはマルチスレッドがありませんが、マルチスレッド効果を達成するためのその他の方法 (上記) リストされている 3 つの方法には、それぞれ長所と短所があります。これらを使用する場合は、プログラムのニーズに応じて最適なものを選択できます。

UncleToo は経験が少ないので、PHP マルチスレッドを実装する他のより良い方法がある場合は、一緒に議論することができます。


http://www.bkjia.com/PHPjc/710596.html

www.bkjia.com

tru​​e

技術記事インターネット上でさまざまなバージョンの PHP 非同期リクエスト メソッドを見てきましたが、ここでいくつかの一般的なメソッドを簡単にまとめます。 1. CURL を使用してワンステップ リクエストを実装する CURL 拡張機能は、開発で最もよく使用されます。プロセス...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles