私は次のスクリプト(の内容を参照していない)持っている:私は同時に(例えば4スレッド)を実行したいすべてのスレッドが完了するまで待つ方法は?
import _thread
def func1(arg1, arg2):
print("Write to CLI")
def verify_result():
func1()
for _ in range (4):
_thread.start_new_thread(func1, (DUT1_CLI, '0'))
verify_result()
を私の場合は取ることができ、関数呼び出しが含まれて関数func1()実行する時間。最後のスレッドが作業を終了した後で、verify_result()を実行します。
現在のところ、すべてのスレッドがジョブを終了するのは、すべてのスレッドがジョブを終了する前にverify_result()が実行されるという結果です。
私もforループの下で(もちろん、私はスレッド輸入)次のコードを使用しようとしましたが、それは仕事をしなかった(引数を参照していない)
t = threading.Thread(target = Enable_WatchDog, args = (URL_List[x], 180, Terminal_List[x], '0'))
t.start()
t.join()
私はPythonの初心者です。特にスレッド化しました。スレッドプールが何を意味するのか少し説明してください。どのようにスレッドのリストを準備できますか? –
@ MosheS。スレッドプールでは、スレッドのリテラルコレクションを意味します。 5回、好ましくは同時に実行する必要のあるジョブがあるとしたら、2つのスレッドを作成して(実行を開始せずに)、それぞれのスレッドがそれぞれジョブを占有し、3つのジョブが1つのスレッドが取得するまで待ちます自由に拾うことができるので、スレッドが自由であればスレッドプールをチェックし、そうでなければ待機する。スレッドのリストによって、私はスレッドオブジェクトのリストを意味しました。あなたはそれらを繰り返し、私があなたがやりたかったと思っていた仕事を開始します。私の答えでは、thread_poolはスレッドプールではなくそのようなリストを参照しています。 –