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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
python 3.5实现检测路由器流量并写入txt的方法实例
Dec 17 Python
详谈python中冒号与逗号的区别
Apr 18 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
Nov 20 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
django API 中接口的互相调用实例
Apr 01 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 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实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
详谈python http长连接客户端
2017/06/12 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
基层干部十八大感言
2014/01/19 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
基层党支部整改方案
2014/10/25 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript