ホームページ >バックエンド開発 >Python チュートリアル >Pythonでスレッドモジュールを使用する方法

Pythonでスレッドモジュールを使用する方法

王林
王林転載
2023-05-15 18:16:122211ブラウズ

Python のスレッド モジュールの詳細な説明. スレッドは、スレッドの同時実行性を提供するために、スレッド モジュールよりも高レベルの API を提供します。これらのスレッドは同時に実行され、メモリを共有します。

スレッド モジュールの具体的な使用法を見てみましょう:

1. Thread の使用

ターゲット関数は Thread オブジェクトをインスタンス化でき、各 Thread オブジェクトはスレッドを表しますstart() メソッドを通じて実行を開始できます。

ここでは、マルチスレッド同時実行を使用する場合とマルチスレッド同時実行を使用しない場合の比較を示します:

最初は、マルチスレッドを使用しない操作です:

コードは次のとおりです。

#!/usr/bin/python 
#compare for multi threads 
import time 
def worker(): 
    print"worker" 
    time.sleep(1) 
    return 
    if__name__ =="__main__": 
    for i in xrange(5): 
    worker()

実行結果は次のとおりです:

Pythonでスレッドモジュールを使用する方法

マルチスレッド同時実行を使用した操作は次のとおりです:

コードは次のとおりです。

#!/usr/bin/python 
import threading 
import time 
defworker(): 
    print"worker" 
    time.sleep(1) 
    return 
    fori in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start()

Pythonでスレッドモジュールを使用する方法

マルチスレッドの同時操作にかかる時間がはるかに短いことが明らかにわかります。

2. threading.activeCount() の使用

このメソッドは、現在のプロセスのスレッド数を返します。返される数値にはメインスレッドが含まれます。

コードは次のとおりです:

#!/usr/bin/python 
#current's number of threads 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(1) 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        t.start() 
        print"current has %d threads" % (threading.activeCount() -1)

Pythonでスレッドモジュールを使用する方法

3. threading.enumerate() の使用。

このメソッドは、現在実行中の Thread オブジェクトのリストを返します。

コードは次のとおりです:

#!/usr/bin/python 
#test the variable threading.enumerate() 
import threading 
import time 
defworker(): 
    print"test" 
    time.sleep(2) 
    threads=[] 
    for i in xrange(5): 
        t=threading.Thread(target=worker) 
        threads.append(t) 
        t.start() 
        for item in threading.enumerate(): 
            print item 
            print for item in threads: 
                print item

Pythonでスレッドモジュールを使用する方法

4. threading.setDaemon() の使用。

バックグラウンドプロセスを設定します。

コードは次のとおりです。

#!/usr/bin/python 
#create a daemon 
import threading 
import time 
def worker(): 
    time.sleep(3) 
    print"worker" 
    t=threading.Thread(target=worker) 
    t.setDaemon(True) 
    t.start() 
    print"haha"

Pythonでスレッドモジュールを使用する方法

worker() メソッドの印刷操作が表示されていないことがわかります。バックグラウンドプロセスになります。

以上がPythonでスレッドモジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。