python 之 threading 模块
2015-08-19 09:48
711 查看
threading提供了一个比thread模块更高层的API来提供线程的并发性。这些线程并发运行并共享内存。
下面来看threading模块的具体用法:
一、Thread的使用 目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行。 这里对使用多线程并发,和不适用多线程并发做了一个比较:首先是不使用多线程的操作:代码如下:
下面是使用多线程并发的操作:代码如下:
可以明显看出使用了多线程并发的操作,花费时间要短的很多。
二、threading.activeCount()的使用,此方法返回当前进程中线程的个数。返回的个数中包含主线程。代码如下:
三、threading.enumerate()的使用。此方法返回当前运行中的Thread对象列表。代码如下:
四、threading.setDaemon()的使用。设置后台进程。代码如下:
可以看出worker()方法中的打印操作并没有显示出来,说明已经成为后台进程。
下面来看threading模块的具体用法:
一、Thread的使用 目标函数可以实例化一个Thread对象,每个Thread对象代表着一个线程,可以通过start()方法,开始运行。 这里对使用多线程并发,和不适用多线程并发做了一个比较:首先是不使用多线程的操作:代码如下:
#!/usr/bin/python #compare for multi threads import time def worker(): print "worker" time.sleep(1) return if __name__ == "__main__": for i in xrange(5): worker()执行结果如下:
下面是使用多线程并发的操作:代码如下:
#!/usr/bin/python import threading import time def worker(): print "worker" time.sleep(1) return for i in xrange(5): t = threading.Thread(target=worker) t.start()
可以明显看出使用了多线程并发的操作,花费时间要短的很多。
二、threading.activeCount()的使用,此方法返回当前进程中线程的个数。返回的个数中包含主线程。代码如下:
#!/usr/bin/python #current's number of threads import threading import time def worker(): print "test" time.sleep(1) for i in xrange(5): t = threading.Thread(target=worker) t.start() print "current has %d threads" % (threading.activeCount() - 1)
三、threading.enumerate()的使用。此方法返回当前运行中的Thread对象列表。代码如下:
#!/usr/bin/python #test the variable threading.enumerate() import threading import time def worker(): print "test" time.sleep(2) threads = [] for i in xrange(5): t = threading.Thread(target=worker) threads.append(t) t.start() for item in threading.enumerate(): print item print for item in threads: print item
四、threading.setDaemon()的使用。设置后台进程。代码如下:
#!/usr/bin/python #create a daemon import threading import time def worker(): time.sleep(3) print "worker" t=threading.Thread(target=worker) t.setDaemon(True) t.start() print "haha"
可以看出worker()方法中的打印操作并没有显示出来,说明已经成为后台进程。
相关文章推荐
- 深入理解Python中的生成器
- Python学习笔记---理解zip()函数
- 详解Python中映射类型(字典)操作符的概念和使用
- python笔记:深刻理解Python中的元类(metaclass)
- python装饰器实现单例模式
- Python中字典的基础知识归纳小结
- python获取的信息列表微信公共平台和用户头像
- 零基础学python-5.9 集合set
- 零基础学python-5.9 集合set
- 零基础学python-5.8 分数
- 零基础学python-5.8 分数
- 零基础学python-5.7 小数精度
- 零基础学python-5.7 小数精度
- python闭包详解+实例演示
- Python Foundation - part three
- python-关键字参数与非关键字参数(可变参数)详解
- python-装饰器
- (转载)Python中:self和__init__的含义 +
- Python入门(十四) 字符串
- Python中字典的基础知识归纳小结