操作の多くのスレッドのPythonの基礎

#マルチスレッドの例

#1例は、ねじ切り
時間インポートSLEEP、CTIMEから
DEFタスク1(タスク名)
:範囲でI(2)のための
印刷( "%S Sが実行され%" %(TASKNAME、CTIME()))
SLEEP (2)

DEF Task2の(タスク名):
範囲でI(2)の場合:
印刷( "%S Sが実行される%" %(TASKNAME、CTIME()))
SLEEP(1)

IF __name__ == '__main__':
タスク1( "タスクA")
Task2の( "タスクII")


例2
時間インポートSLEEP、CTIMEのから
DEFタスク(タスク名、時刻):
範囲(2)におけるIについて:
印刷(% "%S%Sを実行する"(TASKNAME 、CTIME()))
SLEEP(時間)

IF __name__ == '__main__':
タスク( "タスク"、2)
タスク( "タスクII"、1)

の場合__name__ == '__main__':
タスク(「タスク1」、2)
タスク(「タスクII」、1)

例3は、スレッドを導入する
時間インポートSLEEP、CTIMEから
インポートスレッディング#組み込まスレッドモジュール
DEFタスク(タスク名、タイム):
Iの範囲は(2) :
印刷( "%S Sが実行され%" %(TASKNAME、CTIME()))
SLEEP(時間)

スレッドにすべてのスレッドを組み立て#
スレッド= []

メモリタスク配置スレッド
T1 = threading.Thread(ターゲット=タスク、引数=( "タスク"、2))
T2 = threading.Threadの(目標=タスク、引数=( "タスクII" ,. 1))
threads.append(T1)
threads.append(T2)

__name__ IF = = '__main__':
スレッド開始スタート()
Iためのスレッドで:
i.start()
終了メインスレッド
プリント( "メインスレッド終了S%" %のctime())


#4。マルチスレッド-デーモンスレッドが(参加)
タイム輸入SLEEP、CTIMEから
輸入スレッド#組み込ま糸モジュール
DEFタスク(タスク名、時刻):
範囲内のI(2):
印刷(%(TASKNAME、CTIME()) "%S%S実行")
SLEEP(時間)

アセンブリ#すべてのスレッドをスレッド
のスレッド= []
メモリタスク配置スレッド
T1 = threading.Thread(目標=タスク、引数=( " タスク"、2))
threading.Thread(目標=タスク、引数=(「タスクのT2 = 2」、1))
threads.append(T1)
threads.append(T2)

__name__は== '__main__'の場合:
#開始スレッド開始()
スレッドで私のため
i.start()
デーモンが(参加)
私のために内のスレッド:
i.join()
メインスレッド位端
プリント(%のCTIME「メインスレッドS%の終わり」())

は、最適化されたスレッドのスレッドを生成するために、実施例5のバッチを作成する
CTIME、時間インポート眠りから
輸入スレッド#導入スレッドモジュール
DEFタスク(タスク名、時刻):
私のための範囲(2)中:
印刷( "実行されている%S%S" %(TASKNAME、CTIME()))
SLEEP(時間)
すべてのタスクを格納するために定義された#リスト
のタスク= [(「タスク1」、2)、(「タスクII」、1)]
のスレッドに組み込ま#すべてのスレッド
のスレッド= []

バッチ生成スレッド
DEFのCreateThread():
タスク名、時間のタスクに:
threading.Thread(目標=タスク、引数=(タスク名、時間))のT1 =
threads.append(T1)

IF __name__ == '__main__':
バッチ生成スレッド
のCreateThread()
開始スレッド開始()
Iためのスレッドで:
i.start()
デーモンインクルードは()参加
のスレッドで私のために:
i.join()
は、メインスレッドを終了
プリント(「終了メインスレッド%S」%のctime())


タスクおよびユーザ入力、スレッドのバッチ生産の時間に応じ#例6
時間インポートSLEEP、CTIMEから
インポートスレッディング#組み込まスレッドモジュール
DEFタスク(タスク名、時刻):
iについてレンジ(2)中:
印刷(%(TASKNAME、CTIME()) "%S%S実行されている")
SLEEPを(タイム)

#は、すべてのタスクの保存リストを定義
#をタスク= [( "ジョブ1"、2)、( 「タスクII」,. 1)]
タスク= []
タスク名とユーザ入力の持続時間を受信#は、タスクに追加された
DEF(タスク名、時刻):rectask
tasks.append((タスク名、時間))

すべてのスレッドがスレッドに組み立て
スレッドは= []

バッチ生成スレッド作成
DEFのCreateThreadを():
タスクでタスク名、時間:
T1 = threading.Thread(目標=タスク、引数の=(タスク名、タイム))
threads.append(T1)

IF == __name__ '__main__':
NUMS = INT(入力( 'あなたが実行するタスクの数を入力してください:'))
レンジ(NUMS)で私のために:#range命令(2)0、1
TASKNAME INPUTは=((% "タスク%sのの名前を入力してください"私は+ 1))
時間= INT(入力(%(私は+ 1「タスク実行の長%のS入力」)))
タスクと時間が組み立てられたタスクリスト
rectask(タスク名、時間)
#バッチ生成スレッドを
CreateThread()
開始スレッド開始()
私のスレッドでため:
i.start()
デーモン)(参加
スレッドで私のために:
i.join()
メインスレッドの#エンド
%のctimeの印刷(「メインスレッド%sのの終わり」 ())

おすすめ

転載: www.cnblogs.com/Teachertao/p/11707845.html
おすすめ