コルーチンとも呼ばれる非同期関数は、実行中に一時停止したり再開したりできる関数です。 Python では、asyncio モジュールは、一時停止および再開できる特別な関数であるコルーチンを使用して同時コードを作成するための強力なフレームワークを提供します。この記事では、asyncio を使用して Python で 2 つの非同期関数を永久に実行する方法を検討します。
非同期関数はコルーチンとも呼ばれ、実行中に一時停止したり再開したりできる関数です。メインスレッドをブロックすることなくコードを同時実行できるため、システム リソースを効率的に使用できます。
Python で非同期関数を定義するには、def ステートメントの前に async キーワードを使用します。非同期関数では、await キーワードを使用して実行を一時停止し、別の非同期関数またはコルーチンが完了するのを待つことができます。
スレッドは軽量であり、複数のタスクを 1 つのプロセスで同時に実行できます。この方法では、スレッド モジュールを利用して 2 つの非同期関数を永久に実行します。
###文法### リーリー ###例###async_function1 time.sleep(1) を使用して、「非同期関数 1」を毎秒出力します。
この例の出力では、「非同期関数 1」が 1 秒ごとに、「非同期関数 2」が 2 秒ごとに連続して出力されます。このコードは 2 つのスレッドを開始し、それぞれが独自の非同期関数を実行します。メインスレッドは無限ループを通じて存続し、他のスレッドが無限に実行できるようにします。
リーリーサブプロセスは、Python プログラムで作成および管理できる独立したプロセスです。この方法では、subprocess モジュールを使用して 2 つの非同期関数を永久に実行します。
###文法### リーリー ###ここ、###bufsize:
このパラメータは、I/O 操作に使用されるバッファ サイズを示します。デフォルト値は -1 で、システムのデフォルトのバッファ サイズを使用することを意味します。
###例### この例には、async_function1 と async_function2 という 2 つの同一の非同期関数があります。
async_function1 time.sleep(1) を使用して、「非同期関数 1」を毎秒出力します。
subprocess モジュールの subprocess.Popen クラスを使用して、スレッドの代わりにサブプロセスを作成します。各子プロセスは、対応する非同期関数を実行する個別の Python プロセスを実行することによって作成されます。サブプロセスは subprocess.Popen コンストラクターを使用して作成され、Python コマンドを渡して必要な関数を実行します。たとえば、['python', '-c', 'from module import async_function1; async_function1()'] は、別の Python プロセスから async_function1 を実行します。
リーリー ###出力###Async function 1 Async function 1 Async function 2 Async function 1 Async function 1 Async function 2 Async function 1 Async function 1 Async function 2
在本文中,我们讨论了如何使用 Python 中的 asyncio 模块在 Python 中永久运行两个异步函数。使用 asyncio 进行异步编程为编写高性能和响应式 Python 应用程序开辟了新的可能性。通过利用异步函数和事件循环,您可以利用并发的力量并有效地管理多个任务。
以上がPython で 2 つの非同期関数を永久に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。