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 字符串定义
Sep 25 Python
使用python搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python计算程序运行时间的方法
Dec 13 Python
python图像处理之镜像实现方法
May 30 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Python批量查询域名是否被注册过
Jun 21 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
关于python3中setup.py小概念解析
Aug 22 Python
Python二元赋值实用技巧解析
Oct 25 Python
python isinstance函数用法详解
Feb 13 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
详解Python flask的前后端交互
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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
根据分辩率调用不同的CSS.
2007/01/08 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
基于jQuery实现的向下滑动二级菜单效果代码
2015/08/31 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
python fabric实现远程操作和部署示例
2014/03/25 Python
Python实现的Kmeans++算法实例
2014/04/26 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Python操作csv文件实例详解
2017/07/31 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
怎么快速自学python
2020/06/22 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
高中毕业的自我鉴定
2013/12/09 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
小学生期末评语大全
2014/04/21 职场文书
伦敦奥运会口号
2014/06/13 职场文书
好的促销活动方案
2014/08/21 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server