ホームページ > バックエンド開発 > PHPチュートリアル > PHPにおける協調マルチタスクの詳しい説明

PHPにおける協調マルチタスクの詳しい説明

小云云
リリース: 2023-03-21 17:36:02
オリジナル
1532 人が閲覧しました

PHP5.5 の優れた新機能の 1 つは、ジェネレーターとコルーチンのサポートです。ジェネレーターについては、PHP のドキュメントや他のさまざまなブログ投稿 (この投稿やこの記事など) ですでに詳しく説明されています。コルーチンは比較的注目されていないため、コルーチンは非常に強力な機能を持っていますが、知るのが難しく、説明するのも困難です。

ジェネレーター

ジェネレーターの最も基本的な考え方も関数です。この関数の戻り値は、単一の値を返すのではなく、順番に出力されます。言い換えれば、ジェネレーターを使用すると、反復子インターフェースの実装が容易になります。以下は、xrange 関数を実装して簡単に説明します。

a16c2728cc22c9ecce504562e4e79528

结束语

在这篇文章里,我使用多任务协作构建了一个任务调度器,其中包括执行“系统调用”,做非阻塞操作和处理错误。所有这些里真正很酷的事情是任务的结果代码看起来完全同步,甚至任务正在执行大量的异步操作的时候也是这样。如果你打算从套接口读取数据的话,你将不需要传递某个回调函数或者注册一个事件侦听器。相反,你只要书写yield $socket->read()。这儿大部分都是你常常也要编写的,只在它的前面增加yield。

当我第一次听到所有这一切的时候,我发现这个概念完全令人折服,而且正是这个激励我在PHP中实现了它。同时我发现协程真正令人心慌。在令人敬畏的代码和很大一堆代码之间只有单薄的一行,我认为协程正好处在这一行上。讲讲使用上面所述的方法书写异步代码是否真的有益对我来说很难。

以上がPHPにおける協調マルチタスクの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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