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比较两个列表是否相等的方法
Jul 28 Python
python实现给数组按片赋值的方法
Jul 28 Python
python编写Logistic逻辑回归
Dec 30 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
如何在Windows中安装多个python解释器
Jun 16 Python
python实现数字炸弹游戏程序
Jul 17 Python
python 中关于pycharm选择运行环境的问题
Oct 31 Python
使用python绘制分组对比柱状图
Apr 21 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脚本数据库功能详解(中)
2006/10/09 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
javascript中的new使用
2010/03/20 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jQuery链使用指南
2015/01/20 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python实现学生成绩管理系统
2020/04/05 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
参观考察邀请函范文
2014/01/29 职场文书