ホームページ  >  記事  >  バックエンド開発  >  Pythonでスレッド結合を使用する方法

Pythonでスレッド結合を使用する方法

(*-*)浩
(*-*)浩オリジナル
2019-07-03 10:47:542479ブラウズ

join の役割が強調表示されています。join によって行われる作業はスレッドの同期です。つまり、メイン スレッドのタスクが終了すると、ブロッキング状態になり、メイン スレッドの前に他の子スレッドの完了を待ちます。終了します。

Pythonでスレッド結合を使用する方法

join にはタイムアウト パラメーターがあります: (推奨学習: Python ビデオ チュートリアル )

セットアップ時ガード スレッド化する場合、メインスレッドがタイムアウトを待っている間に子スレッドを強制終了し、最終的にプログラムを終了することを意味します。したがって、サブスレッドが 10 個ある場合、合計待機時間は各タイムアウトの累積合計になります。簡単に言うと、各サブスレッドにタイムアウトを与えて実行させ、タイムアウトになったらタスクが完了したかどうかに関係なく直接強制終了させます。

デーモンスレッドが設定されていない場合、メインスレッドはタイムアウトなどの時間が経過するまで待機し、時間が経過するとメインスレッドは終了しますが、子スレッドは強制終了されません。すべての子スレッドが終了してプログラムが終了するまで、子スレッドは引き続き実行できます。

結合の役割

import threading
import time

def run():

    time.sleep(2)
    print('当前线程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('这是主线程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.setDaemon(True)
        t.start()

    for t in thread_list:
        t.join()

    print('主线程结束了!' , threading.current_thread().name)
    print('一共用时:', time.time()-start_time)

Python 関連の技術記事をさらに詳しく知りたい場合は、Python チュートリアル 列にアクセスして学習してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。