''' 多线程---是指从软件或者硬件上实现多个线程并发执行的技术。 使用模块---import threading ''' from time import ctime,sleep import threading def read(things,number): for i in range(number): print("Start Read %s %s"%(things,ctime())) sleep(2) def write(things,number): for i in range(number): print("Start Write %s %s" % (things, ctime())) sleep(2) threads = [] #定义一个线程池 thd1=threading.Thread(target=read,args=("MIKe",2)) #创建一个线程 threads.append(thd1) #将线程装载到threads线程组中 thd2=threading.Thread(target=write,args=("LAN",2)) #创建一个线程 threads.append(thd2) if __name__ == '__main__': for th in threads: th.start() #start()---启动线程活动 for th in threads: th.join() #join([time])守护线程--等待至线程中止 print("all the end %r"%ctime())
关于Thread.join的解析
''' 调用Thread.join将会使主调线程堵塞,直到被调用线程运行结束或超时。 参数timeout是一个数值类型,表示超时时间,如果未提供该参数,那么主调线程将一直堵塞到被调线程结束 ''' import threading from time import ctime,sleep def doWaiting(): print ('start waiting:', ctime()) sleep(3) print ('stop waiting', ctime()) thread1 = threading.Thread(target = doWaiting) thread1.start() sleep(1) #确保线程thread1已经启动 print ('start join') print ('now:', ctime()) thread1.join() #将一直堵塞,直到thread1运行结束。 print ('end join', ctime())