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存取XML的常见方法实例分析
Mar 21 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
python web基础之加载静态文件实例
Mar 20 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
Python pickle模块实现对象序列化
Nov 22 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
sklearn+python:线性回归案例
Feb 24 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
python获取字符串中的email
Mar 31 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开发规范手册之PHP代码规范详解
2011/01/13 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
Vue中fragment.js使用方法小结
2020/02/17 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
Python深入学习之内存管理
2014/08/31 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
学校后勤人员职责
2013/12/27 职场文书
学生党支部先进事迹
2014/02/04 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
详解Python flask的前后端交互
2022/03/31 Python