Pythonのスレッド---スレッドベースの並列

threading ---並列スレッドに基づいて

このモジュールは、モジュールの低レベル  _thread より高いスレッドインタフェース基準の確立。

このモジュールは以下の関数を定義しています。

threading. active_count

現在のスレッドクラスの生存返し  Thread たオブジェクトを。カウントがに等しい返す  enumerate() 返されたリストの長さ。

threading. current_thread

コントロールの呼び出し側のスレッドに対応する電流を返し  Thread たオブジェクトを。代わりに使用してのコントロールの呼び出し側のスレッド場合は  threading 作成が制限された機能を持つダミースレッドオブジェクトを返します。

threading. get_ident

「スレッド識別子。」現在のスレッドを返します。これは、ゼロ以外の整数です。その値は何の直接的な意味を持っていない、主にスレッド関連データ・ディクショナリを含む指標として、マジッククッキーとして使用されています。スレッド識別子は、新しいスレッドが作成されたときに再利用され、スレッドが終了していてもよいです。

新しい3.3の機能。

threading. enumerate

リスト内のすべての生きている現在を返します  Thread オブジェクト。リストには、デーモンスレッドが含まれcurrent_thread() た仮想オブジェクトを作成し、メインスレッドをスレッドを。これは、スレッドの終了が含まれていないとスレッドがまだ開始されていません。

threading. main_thread

メインに戻る  Thread オブジェクト。通常の状況下では、メインスレッドはPythonインタプリタの開始時に作成されたスレッドです。

新しい3.4の機能。

threading. settrace FUNC

すべて  threading のスレッドは、機能モジュールの設定を追跡し始めました。各スレッドで  run() メソッドが呼び出される前に、FUNCは  に渡されます  sys.settrace() 。

threading. setprofile FUNC

すべてのため  threading のスレッド性能テスト機能モジュールを設定するために開始します。各スレッドで  run() メソッドが呼び出される前に、FUNCは  に渡されます  sys.setprofile() 。

threading. stack_size [ サイズ]

スレッドのリターンを作成するときに使用するスタックサイズ。オプションのパラメータの  サイズ  指定された新しいスレッド後のスタックサイズが、それは0(またはインターネットのデフォルト設定)でなければならない、または最小は32,768(32KiB)では正の整数です。場合は  サイズが  指定されていない場合、デフォルトは0です。それは、スレッドのスタックサイズを変更しない場合は、それがスローされます  RuntimeError エラーを。指定されたスタックサイズが正当でない場合、それがスローされます  ValueError 、エラーをし、スタックサイズを変更しません。十分な大きさのインタプリタスタックを確保するための32KiBの最小電流は、スペースを積み重ねています。ページ4KiBはもう、比較的一般的な(詳細については、インターネットの文書が相談しなければならない- 、例えば、スタックサイズがより大きいまたはシステム全体のメモリ割り当てられたページの複数の32KiBが必要であることを要求しているスタックのサイズにプラットフォーム固有の制限の一部を注意していません特定情報の場合には、推奨されるアプローチは、スタックの大きさ)の倍数として4096を使用することです。

適用されます。Windows、POSIXスレッドには、システムを持っています。

このモジュールは、以下の定数が定義されています。

threading. TIMEOUT_MAX

ブロッキング機能(  Lock.acquire()、  RLock.acquire()、  Condition.wait()、...)パラメータの  タイムアウト  許容される最大。このレベルのタイムアウトを超えて入ってくると、スローされます  OverflowError 例外を。

新しい3.2の機能。

  このモジュールは、次のセクションで説明するクラスの数を定義します。

  モジュールは、Javaのスレッドモデルに基づいて設計されています。しかし、Javaでは、ロックと条件変数はPythonで、これらは別々のオブジェクトである各オブジェクトの基本的な特徴は、独立したです。Pythonの  Thread クラスは、JavaのThreadクラスのサブセットだけで、何の優先順位、ノースレッドグループ、スレッドはまだ破壊することはできません、停止、一時停止、再開または中断はありません。モジュールレベルの関数にマッピングされた実現におけるThreadクラスのJavaの静的方法。

以下に記載された方法が自動的に行われます。

  1. スレッドオブジェクトが作成されたときしかし、それは、呼び出し元のスレッドの活動が原因となり  start() 、スタート方法。コントロールのこのスレッドは別々に呼び出す  run() 方法。

  2. スレッドの活動が始まったら、スレッドは「生きている」とみなされます。それはだとき  run() の方法に終了(正常または未処理のスローのいずれか)、それが「生き残る」ではありません。 is_alive() この方法は、スレッドが生きているかどうかを確認するために使用しました。

  3. 他のスレッドは、スレッド呼び出すことができる  join() 方法を。このメソッドは、呼び出されるまで、呼び出し元のスレッドをブロックします  join() 糸端に。

  4. スレッドには名前があります。名前は、コンストラクタに渡すことができ、あなたもすることができます  name 読み取りまたはプロパティを変更します。

  5. スレッドは、次のようにマークすることができ、「スレッドの守護者。」このフラグの重要性は、スレッドが終了している唯一のデーモンで、全体のPythonプログラムが終了します。相続の初期値は、スレッドを作成します。このフラグをすることができる  daemon 特性または特徴  ガーディアン  コンストラクタパラメータセット。

注:プログラムが閉じられたときにデーモンスレッドが突然シャットダウンします。彼らのリソースが正しく解放されないことがあり(例えば、開いているドキュメント、データベーストランザクション、などとなっています)。あなたは、通常のスレッドを停止する場合は、非デーモンモードであることと、適切なシグナリングメカニズムを使用するように設定します

  制御のこの最初のスレッドに対応するPythonプログラム; 6.「メインスレッド」は、対象があります。これは、デーモンスレッドではありません。

     7.「仮想スレッドオブジェクトは、」作成することができます。これらは、例えば、直接Cコードから、制御モジュールのスレッドの開始スレッドの外にある「外部スレッド」スレッドオブジェクトに対応しています。限られた機能を持つ仮想スレッドオブジェクト、彼らは常にすることができない、生きとガードモードであると考えられています  join() 。彼らは外国スレッドの終了を検出することができないので、それらは削除されません。

おすすめ

転載: www.cnblogs.com/TianLiang-2000/p/11708084.html