多线程-threading模块
#coding:utf-8 import threading from time import sleep,ctime #音乐播放器 def music(func): for i in range(2): print('I was listening to %s! %s' %(func,ctime())) sleep(2) #视频播放器 def move(func): for i in range(2): print('I was at the %s! %s' %(func,ctime())) sleep(5) #创建线程数组 threads = [] #创建线程t1,并添加到线程数组 t1 = threading.Thread(target=music,args=(u'爱情买卖',)) threads.append(t1) #创建线程t2,并添加到线程数组 t2 = threading.Thread(target=move,args=(u'阿凡达',)) threads.append(t2) if __name__ == "__main__": #启动线程 for i in threads: i.start() #守护线程 for i in threads: i.join() print('all end: %s' %ctime())
运行结果:
I was listening to 爱情买卖! Thu Oct 18 09:30:37 2018 I was at the 阿凡达! Thu Oct 18 09:30:37 2018 I was listening to 爱情买卖! Thu Oct 18 09:30:39 2018 I was at the 阿凡达! Thu Oct 18 09:30:42 2018 all end: Thu Oct 18 09:30:47 2018
说明:
import threading 引入线程模块。
threads = [] 创建线程数组,用于装载线程。
threading.Thread()通过调用 threading 模块的 Thread()方法来创建线程。
start() 开始线程活动。
join() 等待线程终止。
通过 for 循环遍历 thread 数组中所装载的线程;然后通过 start()函数启动每一个线程。
join()会等到线程结束,或者在给了 timeout 参数的时候,等到超时为止。join()的另一个比较重 要的方面是它可以完全不用调用。一旦线程启动后,就会一直运行,直到线程的函数结束,退出为止。