ホームページ >バックエンド開発 >Python チュートリアル >Pythonでのマルチスレッドの作成と基本的な呼び出し方法
1. マルチスレッドの役割
つまり、マルチスレッドとは独立したサブタスクを並列処理することであり、それによってタスク全体の効率が大幅に向上します。
2. Python のマルチスレッド関連のモジュールとメソッド
Python は、スレッド、スレッド化、キューなどを含む、マルチスレッド プログラミング用のいくつかのモジュールを提供します。
スレッド モジュールは、基本的なスレッドとロックのサポートを提供するだけでなく、次のような基本的な同期データ構造のロック オブジェクトも提供します。
start_new_thread(function, args kwargs=None) は、指定された関数を実行するための新しいスレッドを生成します
assign_lock() はタイプ LockType のロック オブジェクトを割り当てます
exit() によりスレッドが終了します
acquire(wait=None) はロックオブジェクトの取得を試みます
locked() は、ロック オブジェクトが取得された場合は TRUE を返し、それ以外の場合は FALSE を返します
release() はロックを解放します
スレッド化により、より高レベルで強力なスレッド管理機能が提供されます
Thread クラスはスレッドの実行オブジェクトを表します
ロックロックプリミティブオブジェクト
RLock は再入可能なロック オブジェクトであり、単一のスレッドが取得したロックを再度取得できるようにします
キュー モジュールを使用すると、ユーザーは複数のスレッド間でデータを共有するために使用できるキュー データ構造を作成できます
スレッド間でデータを共有するためのプロセス間通信に使用できます
モジュール関数 queue(size) はサイズ size の Queue オブジェクトを作成します
キューオブジェクト関数 qsize() はキューサイズを返します
empty() は、キューが空の場合は True を返し、それ以外の場合は False を返します
put(item, block=0) ITEM をキューに入れます。 block が 0 でない場合、関数はキューに入るまでブロックされます
get(block=0) はキューからオブジェクトを取得します。 block が指定された場合、関数はキューにオブジェクトが存在するまでブロックされます
現在、Python のライブラリには、マルチスレッド プログラミング用に 2 つの起動メソッドが用意されています。1 つはスレッド モジュールの比較的基本的な start_new_thread メソッドで、もう 1 つは統合スレッド モジュールのスレッド オブジェクト Thread クラスを使用します。 。
現在使用されているのは、古いバージョンのスレッドモジュールで start_new_thread() 関数を呼び出して新しいスレッドを生成することです
比較すると、thread.start_new_thread(function,(args[,kwargs])) の実装メカニズムは実際には C に似ており、関数パラメーターは呼び出されるスレッド関数 (args[,kwargs]) はスレッドです。呼び出される関数。スレッド関数のパラメータのタプル タイプを作成します。ここで、kwargs はオプションのパラメータです。新しく作成されたスレッドは通常、スレッド関数の実行が終了すると自動的に終了するか、スレッド関数内で thread.exit() を呼び出して SystemExit 例外をスローしてスレッド終了の目的を達成します。
リーリー
リーリー
リーリー