当前位置:  编程技术>python

python 多线程应用介绍

    来源: 互联网  发布时间:2014-09-04

    本文导语:  python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在python 虚拟机上,创建的多线程可能是虚拟的线程,需要由python虚拟机来轮询调度,这大大降...

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线程框架 greenlet
  • python创建线程示例
  • Python中多线程thread与threading的实现方法
  • python线程锁(thread)学习示例
  • python线程池的实现实例
  • python使用urllib模块开发的多线程豆瓣小站mp3下载器
  • python多线程编程方式分析示例详解
  • python多线程http下载实现示例
  • python多线程扫描端口示例
  • Python中用Ctrl+C终止多线程程序的问题解决
  • python中的多线程实例教程
  • Python实现多线程下载文件的代码实例
  • python实现多线程采集的2个代码例子
  • 理解python多线程(python多线程简明教程)
  • Python代理抓取并验证使用多线程实现
  • python多线程抓取天涯帖子内容示例
  • python单线程实现多个定时器示例
  • python支持断点续传的多线程下载示例
  • Python多线程学习资料
  • Python使用代理抓取网站图片(多线程)
  • 使用python编写批量卸载手机中安装的android应用脚本
  • python应用程序在windows下不出现cmd窗口的办法
  • 使用python搭建Django应用程序步骤及版本冲突问题解决
  • 使用python编写脚本获取手机当前应用apk的信息
  • Python高级应用实例对比:高效计算大文件中的最长行的长度
  • python正则分组的应用
  • python的dict,set,list,tuple应用详解
  • 闭包在python中的应用之translate和maketrans用法详解
  • Python enumerate遍历数组示例应用
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • python之平台独立的调试工具winpdb介绍
  • python基础教程之基本内置数据类型介绍
  • 基于python实现的网络爬虫功能:自动抓取网页介绍
  • easy_install python包安装管理工具介绍
  • python中的深拷贝(deepcopy)和浅拷贝(copy)介绍及代码参考
  • 详细介绍Python语言中的按位运算符
  • Python类的构造函数,析构函数以及垃圾回收机制详细介绍及代码举例
  • python strip()函数 介绍
  • python对XML的解析方法(SAX,DOM,ElementTree)介绍
  • Python sys.path详细介绍
  • python基础教程之缩进介绍
  • python的id()函数介绍
  • python基础教程之基本数据类型和变量声明介绍
  • Python 变量类型及命名规则介绍
  • python进阶教程之模块(module)介绍
  • python中的五种异常处理机制介绍
  • python基础教程之循环介绍
  • Python中条件选择和循环语句使用方法介绍
  • python基础教程之自定义函数介绍
  • python中的内置函数getattr()介绍及示例
  • python 装饰器功能以及函数参数使用介绍
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python读取csv文件示例(python操作csv)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3