Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのスレッドモジュール


Python 2.4に含まれている新しいスレッドモジュールは、前のセクションで説明したスレッドモジュールよりもはるかに強力で高レベルのスレッドサポートを提供します。

スレッドモジュールは、スレッドモジュールのすべてのメソッドを公開し、いくつかの追加のメソッドを提供します-

  • threading.activeCount() −アクティブなスレッドオブジェクトの数を返します。
  • threading.currentThread() −呼び出し元のスレッドコントロール内のスレッドオブジェクトの数を返します。
  • threading.enumerate() −現在アクティブなすべてのスレッドオブジェクトのリストを返します。

メソッドに加えて、スレッドモジュールにはスレッドを実装するThreadクラスがあります。 Threadクラスが提供するメソッドは次のとおりです-

  • run() − run()メソッドはスレッドのエントリポイントです。
  • start() − start()メソッドは、runメソッドを呼び出してスレッドを開始します。
  • join([time]) − join()は、スレッドが終了するのを待ちます。
  • isAlive() − isAlive()メソッドは、スレッドがまだ実行中であるかどうかをチェックします。
  • getName() − getName()メソッドはスレッドの名前を返します。
  • setName() − setName()メソッドは、スレッドの名前を設定します。

スレッドモジュールを使用したスレッドの作成

スレッドモジュールを使用して新しいスレッドを実装するには、次のことを行う必要があります-

  • Threadクラスの新しいサブクラスを定義します。
  • __ init __(self [、args])メソッドをオーバーライドして、引数を追加します。
  • 次に、run(self [、args])メソッドをオーバーライドして、開始時にスレッドが実行する必要があることを実装します。

新しいThreadサブクラスを作成したら、そのインスタンスを作成し、start()を呼び出して新しいスレッドを開始します。start()はrun()メソッドを呼び出します。

#!/usr/bin/python
import threading
import time
exitFlag = 0
class myThread (threading.Thread):
   def __init__(self, threadID, name, counter):
      threading.Thread.__init__(self)
      self.threadID = threadID
      self.name = name
      self.counter = counter
   def run(self):
      print "Starting " + self.name
      print_time(self.name, 5, self.counter)
      print "Exiting " + self.name
def print_time(threadName, counter, delay):
   while counter:
      if exitFlag:
         threadName.exit()
      time.sleep(delay)
      print "%s: %s" % (threadName, time.ctime(time.time()))
      counter -= 1
# Create new threads
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# Start new Threads
thread1.start()
thread2.start()
print "Exiting Main Thread"

上記のコードを実行すると、次の結果が生成されます-

Starting Thread-1
Starting Thread-2
Exiting Main Thread
Thread-1: Thu Mar 21 09:10:03 2013
Thread-1: Thu Mar 21 09:10:04 2013
Thread-2: Thu Mar 21 09:10:04 2013
Thread-1: Thu Mar 21 09:10:05 2013
Thread-1: Thu Mar 21 09:10:06 2013
Thread-2: Thu Mar 21 09:10:06 2013
Thread-1: Thu Mar 21 09:10:07 2013
Exiting Thread-1
Thread-2: Thu Mar 21 09:10:08 2013
Thread-2: Thu Mar 21 09:10:10 2013
Thread-2: Thu Mar 21 09:10:12 2013
Exiting Thread-2

  1. Pythonでpydocモジュールを使用したドキュメントの生成

    はじめに pydoc moduleは、Pythonモジュールからドキュメントを自動的に生成します。ドキュメントは、コンソールにテキストのページとして保存したり、Webブラウザに表示したり、HTMLファイルとして表示したりすることができます。 この記事では、さまざまなケースでこれらのドキュメントを表示する方法を学び、Pythonスクリプト用の独自のドキュメントを作成するのに役立つdocstringについても学びます。 pydocの使用法がわかったので、始めましょう。 はじめに pydocモジュールはPythonと一緒にパッケージ化されているため、個別にダウンロードしてインストールする

  2. Pythongetpassモジュール

    Pythonの標準ライブラリのgetpassモジュールで定義されている2つの関数があります。これらは、ユーザーの資格情報を検証した後にのみ端末ベースのアプリケーションを実行する必要がある場合に役立ちます。 getpass() この関数は、ユーザーにパスワードの入力を求めます。デフォルトでは、ユーザーが端末に入力したキーはエコーされません。また、端末に表示されるデフォルトのプロンプトは「パスワード」であり、パラメータとして文字列を指定することでカスタマイズできます。 次の例では、PythonプロンプトはWindowsのコマンドプロンプトターミナルから呼び出されます。入力したパスワードは端末