python 多线程应用介绍


Posted in Python onDecember 19, 2012

python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在python 虚拟机上,创建的多线程可能是虚拟的线程,需要由python虚拟机来轮询调度,这大大降低了python多线程的可用性。我们经今天用了经典的生产者和消费者的问题来说明下python的多线程的运用 上代码:

#encoding=utf-8 
import threading 
import random 
import time 
from Queue import Queue 

class Producer(threading.Thread): 

def __init__(self, threadname, queue): 
threading.Thread.__init__(self, name = threadname) 
self.sharedata = queue 

def run(self): 
for i in range(20): 
print self.getName(),'adding',i,'to queue' 
self.sharedata.put(i) 
time.sleep(random.randrange(10)/10.0) 
print self.getName(),'Finished' 


# Consumer thread 

class Consumer(threading.Thread): 


def __init__(self, threadname, queue): 
threading.Thread.__init__(self, name = threadname) 
self.sharedata = queue 


def run(self): 

for i in range(20): 
print self.getName(),'got a value:',self.sharedata.get() 
time.sleep(random.randrange(10)/10.0) 
print self.getName(),'Finished' 


# Main thread 

def main(): 

queue = Queue() 
producer = Producer('Producer', queue) 
consumer = Consumer('Consumer', queue) 
print 'Starting threads ...' 
producer.start() 
consumer.start() 
producer.join() 
consumer.join() 
print 'All threads have terminated.' 
if __name__ == '__main__': 
main()

你亲自运行下这断代码,可能有不一样的感觉!理解以后可以用python cookielib 再结果python urllib 写一个多线程下载网页的脚本应该没什么问题

Python 相关文章推荐
python字符串连接方法分析
Apr 12 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
Python 查看文件的读写权限方法
Jan 23 Python
python实现定时发送qq消息
Jan 18 Python
Python中遍历列表的方法总结
Jun 27 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
Python 求数组局部最大值的实例
Nov 26 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
通过cmd进入python的步骤
Jun 16 Python
Python 如何操作 SQLite 数据库
Aug 17 Python
Python多线程学习资料
Dec 19 #Python
python搭建简易服务器分析与实现
Dec 15 #Python
Python笔记(叁)继续学习
Oct 24 #Python
python笔记(2)
Oct 24 #Python
python笔记(1) 关于我们应不应该继续学习python
Oct 24 #Python
Python的一些用法分享
Oct 07 #Python
Python天气预报采集器实现代码(网页爬虫)
Oct 07 #Python
You might like
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
javascript学习之json入门
2016/12/22 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python中的choice()方法使用详解
2015/05/15 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Python修改DBF文件指定列
2020/12/19 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
《植物妈妈有办法》教学反思
2014/02/25 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers