Python で 2 つの非同期関数を永久に実行する方法
コルーチンとも呼ばれる非同期関数は、実行中に一時停止したり再開したりできる関数です。 Python では、asyncio モジュールは、一時停止および再開できる特別な関数であるコルーチンを使用して同時コードを作成するための強力なフレームワークを提供します。この記事では、asyncio を使用して Python で 2 つの非同期関数を永久に実行する方法を検討します。
非同期関数
非同期関数はコルーチンとも呼ばれ、実行中に一時停止したり再開したりできる関数です。メインスレッドをブロックすることなくコードを同時実行できるため、システム リソースを効率的に使用できます。
Python で非同期関数を定義するには、def ステートメントの前に async キーワードを使用します。非同期関数では、await キーワードを使用して実行を一時停止し、別の非同期関数またはコルーチンが完了するのを待つことができます。
方法 1 - asyncio モジュールを使用する
Python の asyncio モジュールは、コルーチンを使用したシングルスレッドの同時コードの作成、ソケットやその他のリソースを介した I/O アクセスの多重化、ネットワーク クライアントとサーバーの実行、およびその他の関連操作のためのフレームワークを提供します。これにより、構造化され組織化された方法で非同期コードを作成できるようになります。 ###文法### リーリー ###例###以下の function1 の例では、「Function 1」を出力し、await asyncio.sleep(1) を使用して 1 秒間一時停止する無限ループがあります。同様に、function2 には、「Function 2」を出力して 2 秒間停止する無限ループがあります。 main 関数で asyncio.gather(function1(), function2()) を呼び出すことで、両方の関数を同時に実行するようにイベント ループに指示します。 asyncio.gather 関数は、これら 2 つの関数をインターリーブ方式でスケジュールおよび実行する役割を果たします。 Python スクリプトを実行すると、イベント ループが無限に実行され、function1 と function2 が繰り返し実行されます。出力はこの動作を示しており、両方の関数からのメッセージがそれぞれの時間間隔に基づいて交互に出力されます。
rree ###出力### リーリー方法 1 - スレッドを使用する
スレッドは軽量であり、複数のタスクを 1 つのプロセスで同時に実行できます。この方法では、スレッド モジュールを利用して 2 つの非同期関数を永久に実行します。
###文法### リーリー ###例###以下の例には、async_function1 と async_function2 という 2 つの非同期関数があります。
async_function1 time.sleep(1) を使用して、「非同期関数 1」を毎秒出力します。
async_function2 は、time.sleep(2) を使用して、2 秒ごとに「Async function 2」を出力します。
- async_function1 と async_function2 に対して、それぞれ thread1 と thread2 という 2 つのスレッドを作成します。 thread モジュールの Thread クラスは、スレッドの作成と管理に使用されます。次に、start() メソッドを使用して 2 つのスレッドを開始します。これにより、別のスレッドで非同期関数の実行が開始され、それらを同時に実行できるようになります。
-
リーリー
###出力###
この例の出力では、「非同期関数 1」が 1 秒ごとに、「非同期関数 2」が 2 秒ごとに連続して出力されます。このコードは 2 つのスレッドを開始し、それぞれが独自の非同期関数を実行します。メインスレッドは無限ループを通じて存続し、他のスレッドが無限に実行できるようにします。
リーリー 方法 3 - サブプロセスを使用する -
サブプロセスは、Python プログラムで作成および管理できる独立したプロセスです。この方法では、subprocess モジュールを使用して 2 つの非同期関数を永久に実行します。
###文法### リーリー ###ここ、###
このパラメータは、実行するコマンドを指定します。文字列または一連の文字列を指定できます。
bufsize:
このパラメータは、I/O 操作に使用されるバッファ サイズを示します。デフォルト値は -1 で、システムのデフォルトのバッファ サイズを使用することを意味します。
bufsize:
- このパラメータは、I/O 操作に使用されるバッファ サイズを示します。デフォルト値は -1 で、システムのデフォルトのバッファ サイズを使用することを意味します。
-
###例### この例には、async_function1 と async_function2 という 2 つの同一の非同期関数があります。
async_function1 time.sleep(1) を使用して、「非同期関数 1」を毎秒出力します。
async_function2 は、time.sleep(2) を使用して、2 秒ごとに「Async function 2」を出力します。 -
subprocess モジュールの subprocess.Popen クラスを使用して、スレッドの代わりにサブプロセスを作成します。各子プロセスは、対応する非同期関数を実行する個別の Python プロセスを実行することによって作成されます。サブプロセスは subprocess.Popen コンストラクターを使用して作成され、Python コマンドを渡して必要な関数を実行します。たとえば、['python', '-c', 'from module import async_function1; async_function1()'] は、別の Python プロセスから async_function1 を実行します。
リーリー ###出力### この例の出力では、「非同期関数 1」が 1 秒ごとに、「非同期関数 2」が 2 秒ごとに連続して出力されます。このコードは 2 つの子プロセスを作成し、それぞれが独自の非同期関数を実行します。メインプロセスは無限ループによって維持され、子プロセスが無限に実行できるようになります。
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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

CentOSシステムのPytorchデータを効率的に処理するには、次の手順が必要です。依存関係のインストール:システムを最初に更新し、Python3とPIPをインストールします。仮想環境構成(推奨):Condaを使用して、新しい仮想環境を作成およびアクティブにします。例:Condacreate-N

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。
