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

Pythonで新しいスレッドを開始する


別のスレッドを生成するには、スレッドモジュールで使用可能な次のメソッドを呼び出す必要があります-

thread.start_new_thread ( function, args[, kwargs] )

このメソッド呼び出しにより、LinuxとWindowsの両方で新しいスレッドをすばやく効率的に作成できます。

メソッド呼び出しはすぐに戻り、子スレッドが開始され、渡された引数のリストを使用して関数が呼び出されます。関数が戻ると、スレッドは終了します。

ここで、argsは引数のタプルです。空のタプルを使用して、引数を渡さずに関数を呼び出します。 kwargsは、キーワード引数のオプションの辞書です。

#!/usr/bin/python
import thread
import time
# Define a function for the thread
def print_time( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print "%s: %s" % ( threadName, time.ctime(time.time()) )
# Create two threads as follows
try:
   thread.start_new_thread( print_time, ("Thread-1", 2, ) )
   thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
   print "Error: unable to start thread"
while 1:
   pass

出力

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

Thread-1: Thu Jan 22 15:42:17 2009
Thread-1: Thu Jan 22 15:42:19 2009
Thread-2: Thu Jan 22 15:42:19 2009
Thread-1: Thu Jan 22 15:42:21 2009
Thread-2: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:23 2009
Thread-1: Thu Jan 22 15:42:25 2009
Thread-2: Thu Jan 22 15:42:27 2009
Thread-2: Thu Jan 22 15:42:31 2009
Thread-2: Thu Jan 22 15:42:35 2009

低レベルのスレッド化には非常に効果的ですが、スレッドモジュールは新しいスレッド化モジュールと比較して非常に制限されています。


  1. Tkinter Pythonでスレッドを使用する方法は?

    Tkinterでは、スレッド化を使用して一度に複数の関数を呼び出すことができます 。アプリケーション内の一部の機能の非同期実行を提供します。 Pythonでスレッドを使用するために、スレッドというモジュールをインポートできます。 スレッドをサブクラス化します クラス。新しいクラス内で、実行を上書きする必要があります メソッドを実行し、そこでロジックを実行します。 したがって、基本的にスレッドを使用すると、一度に複数の作業を行うことができます。アプリケーションでスレッド化を実現するために、Tkinterは Thread()を提供します 機能。 例を挙げて、しばらくスリープしてから別の関数を

  2. Pythonのリーフから始まる最小の文字列

    二分木のルートがあり、各ノードに0から25までの値が含まれているとします。これらの値は、文字「a」から「z」を表します。値0は「a」を表し、値1は「b」を表します。 、 等々。このツリーの葉で始まり、ルートで終わる辞書式順序で最小の文字列を検索する必要があります。したがって、ツリーが次のような場合- シーケンスが[0,3,25]であるため、出力は「adz」になります。 これを解決するには、次の手順に従います- 次のようにdfsトラバーサルメソッドを定義します ノードがnullでない場合、 ノード値を文字としてAに挿入します ノードに左右の子がない場合、