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
-
Pythonでpydocモジュールを使用したドキュメントの生成
はじめに pydoc moduleは、Pythonモジュールからドキュメントを自動的に生成します。ドキュメントは、コンソールにテキストのページとして保存したり、Webブラウザに表示したり、HTMLファイルとして表示したりすることができます。 この記事では、さまざまなケースでこれらのドキュメントを表示する方法を学び、Pythonスクリプト用の独自のドキュメントを作成するのに役立つdocstringについても学びます。 pydocの使用法がわかったので、始めましょう。 はじめに pydocモジュールはPythonと一緒にパッケージ化されているため、個別にダウンロードしてインストールする
-
Pythongetpassモジュール
Pythonの標準ライブラリのgetpassモジュールで定義されている2つの関数があります。これらは、ユーザーの資格情報を検証した後にのみ端末ベースのアプリケーションを実行する必要がある場合に役立ちます。 getpass() この関数は、ユーザーにパスワードの入力を求めます。デフォルトでは、ユーザーが端末に入力したキーはエコーされません。また、端末に表示されるデフォルトのプロンプトは「パスワード」であり、パラメータとして文字列を指定することでカスタマイズできます。 次の例では、PythonプロンプトはWindowsのコマンドプロンプトターミナルから呼び出されます。入力したパスワードは端末