今週はPythonのスレッド関連のどの部分を学習するために、正式にインターンシップ理由を手配するために、学校の認識で今週終了し、何も進展がない夏始めました
最初は、次の図のレンダリングを実行して、シングルスレッドのテストです
コードは以下の通りであります:
1 から時刻インポートSLEEP、CTIME 2 DEFのFUN1() 。3 プリント(' FUN1の実行を開始:' 、CTIME()) 。4 #スリープ4S 。5 (4 SLEEP ) 。6 プリント(' FUN1ランの終わり:' 、CTIME()) 7 DEFのfun2(): 8 プリント(' fun2の実行を開始:' 、CTIMEを()) 。9 #の睡眠2S 10 SLEEP(2 ) 。11 プリント(「ランのfun2終了:" 、CTIME()) 12で DEF メイン(): 13は、 印刷(" :スタートファイル名を指定して実行時間" )、CTIME() 14 #通話機能とfun2機能シングルスレッドFUN1 15 FUN1() 16 fun2() 17。 印刷(" 最後の実行時間は:" 、CTIME()) 18がある のIF __name__ == ' __main__ ' : 19 、メイン()
次のテストは、次のような効果があり、マルチスレッドプログラムです。
コードは以下の通りであります:
。1 インポートスレッドAS _Thread 2 からの時間インポートSLEEP、ctimeの 3。 DEFのFUN1(): 4 印刷(' FUN1の実行を開始:' 、CTIMEを()) 。5 #スリープ4S 。6 (4 SLEEP ) 。7 印刷(' 実行のFUN1終わり:' 、())CTIME 8。 DEFのfun2(): 9 プリント(' fun2の実行を開始:' 、CTIME()) 10 #の睡眠2S 11 SLEEP(2 ) 12であります 印刷(' fun2実行の最後:' 、CTIME()) 13がある DEF )(メイン: 14 印刷(' スタートファイル名を指定して実行時間:' 、CTIME()) 15の #が機能FUN1実行中のスレッドを開始 16 thread.start_new_thread(FUN1を()、 ()) 17 位fun2機能実行スレッド開始 18である thread.start_new_thread(fun2()()) 。19 #の睡眠6Sが 20れる 睡眠(6 ) 21が プリント(' 末端ランタイム:' 、CTIME()) 22は、 IF __name__ = = ' __main__ ': 23 メイン()
その後、次のような効果があり、機能のテストパラメータをスレッドに渡されます。
コードは以下の通りであります:
1 インポートランダム 2 から時間インポートSLEEP、CTIME 3。 インポートスレッドとして_Thread 4。 #のスレッド関数、a及びbはstart_new_thread関数によって渡されるパラメータである請求項 5。 DEF ファン(B): 。6 プリント(B) 7。 #時間のランダムな期間(1~4秒)スリープ 8。 睡眠(random.randint(1,4 )) 9つの。 #は、8つのスレッドを開始 10 するための Iの中範囲(図8 ) 。11 #は、各スレッドのための2つの引数の関数値であります 12はある thread.start_new_thread(楽しい、(私は+ 1、' A '*(私は+ 1 ))) 13である #実施形態サスペンドするプログラムの入力端子からの文字列で 14(入力)
次のテストは、次のような効果があり、スレッドロックです。
コードは以下の通りであります:
1 インポートスレッドとして_Thread 2 から時間インポートSLEEP、CTIME 。3 #のスレッド機能、整数型指数の指数、秒スリープ時間(単位:秒)であり、ロックオブジェクトをロックする 。4 DEF ファン(インデックス、秒、ロック)。 。5 印刷(' 開始'、インデックス、' 実行時間' 、CTIME()) 。6 #の睡眠 。7 スリープ(秒) 。8 印刷(' 実行終了'、インデックス、' 実行時間' 、CTIMEを()) 。9 #のレリーズロックオブジェクト 10 )(lock.releaseを 11 DEF )(メイン: 12の #は、第1のロックオブジェクトの作成 13 LOCK1 = thread.allocate_lock() 14 #ロック係合することと等価であるロックを取得し、 15 lock1.acquire()を 16 #最初のスレッドを開始すると、パス第1のロックオブジェクトは、インデックスが10であり、睡眠時間は4であり、LOCK1ロックオブジェクトである 。17 thread.start_new_thread(楽しい、(10,4 、LOCK1)) 18である #第2ロックオブジェクトを作成する 。19 LOCK2 = thread.allocate_lock() 20 #ロック係合することと等価であるロックを取得、 21は lock2.acquire() 22であり、 #は、第二のスレッド、第1のロックオブジェクトを起動して渡し、インデックスが10で、睡眠時間がLOCK1ロックオブジェクトされ、4で 23である スレッド。 start_new_thread(楽しい、(20は、2である、LOCK2)) 24 #whileループとLOCK1がロックされ、LOCK2放出されたか否かを決定する方法 25を ながら lock1.locked()またはlock2.locked(): 26である パス 27 IF __name__ == ' __main__ ' : 28 (メイン)
これらは、今週のすべての内容は、次の週には、是非、U-NETニューラルネットワークを学び、実践していきます!!!