1. 阻塞主进程,专注于执行多线程中的程序。
2. 多线程多join的情况下,依次执行各线程的join方法,前头一个结束了才能执行后面一个。
3. 无参数,则等待到该线程结束,才开始执行下一个线程的join。
4. 参数timeout为线程的阻塞时间,如 timeout=2 就是罩着这个线程2s 以后,就不管他了,继续执行下面的代码。
import threading, time
def doWaiting():
print('start waiting1: ' + time.strftime('%H:%M:%S') + "\n")
time.sleep(3)
print( 'stop waiting1: ' + time.strftime('%H:%M:%S') + "\n" )
def doWaiting1():
print('start waiting2: ' + time.strftime('%H:%M:%S') + "\n" )
time.sleep(8)
print ('stop waiting2: ', time.strftime('%H:%M:%S') + "\n" )
tsk = []
thread1 = threading.Thread(target = doWaiting)
thread1.start()
tsk.append(thread1)
thread2 = threading.Thread(target = doWaiting1)
thread2.start()
tsk.append(thread2)
print('start join: ' + time.strftime('%H:%M:%S') + "\n" )
for tt in tsk:
tt.join(2)
##参数为timeout = 时间,相当于给这这两个线程进行阻塞,流出一定的时间来只运行这段线程,当时间一过则就可以运行下面的代码了
print('end join: ' + time.strftime('%H:%M:%S') + "\n")