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的numpy库中将矩阵转换为列表等函数的方法
Apr 04 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
django和vue实现数据交互的方法
Aug 21 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
python如何代码集体右移
Jul 20 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python 基于wx实现音乐播放
Nov 24 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
Matplotlib animation模块实现动态图
Feb 25 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面向对象全攻略 (十) final static const关键字的使用
2009/09/30 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
微信小程序自定义组件
2017/08/16 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python列表(List)知识点总结
2019/02/18 Python
C,C++的几个面试题小集
2013/07/13 面试题
店长岗位职责
2013/11/21 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
大雁塔英文导游词
2015/02/10 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
汉语拼音教学反思
2016/02/22 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android