Python THREADINGモジュールにおけるJOIN()の理解方法
973 ワード
Joinメソッド:1つのスレッドが実行中に別のスレッドを呼び出し、それが完了してから実行される場合、
では、このスレッドを呼び出すときに呼び出されるスレッドのjoinメソッドを使用することができます.
コードは次のとおりです.
プログラムでは,最後のjoin()メソッドの呼び出しは,メインスレッドがサブスレッドを1つずつ呼び出すjoin()メソッドである.呼び出されたスレッドが実行されると、
次のコードは、プライマリ・スレッドが実行します.
では、このスレッドを呼び出すときに呼び出されるスレッドのjoinメソッドを使用することができます.
コードは次のとおりです.
import threading
import time
from time import sleep
# , Thread
def now():
return str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
def test(nloop, nsec):
print 'start loop', nloop, 'at:', now()
sleep(nsec)
print 'loop', nloop, 'done at:', now()
def main():
print 'starting at:',now()
threadpool = []
for i in xrange(10):
th = threading.Thread(target=test, args=(i, 2))
threadpool.append(th)
for th in threadpool:
th.start()
for th in threadpool:
threading.Thread.join(th)
print 'all Done at:', now()
if __name__ == '__name__':
main()
プログラムでは,最後のjoin()メソッドの呼び出しは,メインスレッドがサブスレッドを1つずつ呼び出すjoin()メソッドである.呼び出されたスレッドが実行されると、
次のコードは、プライマリ・スレッドが実行します.