码迷,mamicode.com
首页 > 编程语言 > 详细

Python多线程

时间:2017-12-21 17:21:28      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:reload   创建线程   target   post   tar   播放   was   视频   并行   

多线程技术需。要用到threading模块,应当避免使用thread模块,原因是它不支持守护线程。当主线程退出时,所有的子线程不管他们是都还在工作,都会被强制退出。有时候我们并不希望发生这种行为

,这时候就需要引入守护线程的概念。 threading模块支持守护线程,所以在需要使用多线程的时候,直接使用threading模块就行。

 1 #coding:utf-8
 2 import sys
 3 reload(sys)
 4 sys.setdefaultencoding(utf8)
 5 from time import sleep,ctime
 6 import threading
 7 
 8 #音乐播放器
 9 def music(func,loop):
10     for i in range(loop):
11         print ( I was listening to %s! %s % (func,ctime()))
12         sleep(2)
13 
14 
15 #视频播放器
16 def movie(func,loop):
17     for i in range(loop):
18         print(I was at the %s! %s % (func,ctime()))
19         sleep(5)
20 
21 #创建线程数组
22 threads = []
23 
24 #创建线程t1,并添加到线程数组
25 t1 = threading.Thread(target=music,args=(爱情买卖,2))
26 threads.append(t1)
27 
28 #创建线程t2,并添加到线程数组
29 t2 = threading.Thread(target=movie,args=(阿凡达,2))
30 threads.append(t2)
31 
32 if __name__ == "__main__":
33     #启动线程
34     for t in threads:
35         t.start()
36     #守护线程
37     for t in threads:
38         t.join()
39     print (all end:%s % ctime())

import threading  :  引入线程模块

threads = 【】:  创建线程数组,用于装载线程

threading.Thread():  通过调用threading模块下的Thread()方法来创建线程。

通过for循环遍历threads数组中所装载的线程;start()开始线程活动,join()等待线程终止。

 

I was listening to 爱情买卖! Thu Dec 21 14:07:58 2017
I was at the 阿凡达! Thu Dec 21 14:07:58 2017
I was listening to 爱情买卖! Thu Dec 21 14:08:00 2017
I was at the 阿凡达! Thu Dec 21 14:08:03 2017
all end:Thu Dec 21 14:08:08 2017

从上面运行的结果来看 两个子线程同时启动14:07 总共用时10秒,两个电影循环总共消耗10秒,两个音乐总共消耗4秒 可以看到达到了并行工作的效果。

 

Python多线程

标签:reload   创建线程   target   post   tar   播放   was   视频   并行   

原文地址:http://www.cnblogs.com/stephenmc/p/8081125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!