python学习之多线程

Posted 小泥巴文档

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之多线程相关的知识,希望对你有一定的参考价值。

使用multiprocessing

使用multiprocessing.dummy

单使用multiprocessing模块的指的是多进程,使用multiprocessing.dummy则表示使用的是多线程

 

# from multiprocessing import Pool
from multiprocessing.dummy import Pool as ThreadPool
from multiprocessing import cpu_count import time import urllib2 urls = [ ‘http://www.baidu.com‘, ‘http://home.baidu.com/‘, ‘http://tieba.baidu.com/‘, ‘http://zhidao.baidu.com/‘, ‘http://music.baidu.com/‘, ‘http://image.baidu.com/‘, ‘http://python-china.org/‘, ‘http://python-china.org/node/about‘, ‘http://python-china.org/node/‘, ‘http://python-china.org/account/signin‘, ‘http://python-china.org/account/signup‘, ‘http://www.qq.com‘, ‘http://www.youku.com‘, ‘http://www.tudou.com‘ ] start = time.time() results = map(urllib2.urlopen, urls) print ‘Normal:‘, time.time() - start start2 = time.time() # 开cpu_count个 worker,没有参数时默认是 cpu 的核心数 pool = ThreadPool(processes=cpu_count) # 在线程中执行 urllib2.urlopen(url) 并返回执行结果 results2 = pool.map(urllib2.urlopen, urls) pool.close() pool.join() print ‘Thread Pool:‘, time.time() - start2

以上是关于python学习之多线程的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之多线程编程

python学习之进程线程学习一

java多线程学习之——多线程中几种释放锁和不释放锁的操作

Java多线程学习之Lock与ReentranLock详解

Java多线程学习之synchronized总结

多线程学习之--真的不能在子线程里更新UI吗?