Python进程间通信用法实例
本文实例讲述了Python进程间通信用法。分享给大家供大家参考。具体如下:
#!/usr/bin/env python # -*- coding=utf-8 -*- import multiprocessing def counsumer(input_q): while True: item = input_q.get() #处理项目 print item #此处替换为有用的工作 #发出信号通知任务完成 input_q.task_done() def producer(sequence,output_q): for item in sequence: #将项目放入队列 output_q.put(item) #建立进程 if __name__ == '__main__': q = multiprocessing.JoinableQueue()#创建可连接的共享进程队列 cons_q = multiprocessing.Process(target=counsumer,args=(q,)) cons_q.daemon = True cons_q.start() sequence = [1,2,3,4] producer(sequence,q) q.join() print 'success'
希望本文所述对大家的Python程序设计有所帮助。
相关推荐
-
详解Python进程间通信之命名管道
管道是一种简单的FIFO通信信道,它是单向通信的. 通常启动进程创建一个管道,然后这个进程创建一个或者多个进程子进程接受管道信息,由于管道是单向通信,所以经常需要创建两个管道来实现双向通信. 命名管道是对传统管道的扩展,默认的管道是匿名管道,只在程序运行时存在:而命名管道是持久化的,当不需要时需要删除它. 命名管道使用文件系统,由mkfifo()方法创建.一旦创建了,两个独立的进程都可以访问它,一个读,另外一个写. 命名管道支持阻塞读和阻塞写操作: 如果一个进程打开文件读,它会阻塞直到另外一个进
-
Python多进程通信Queue、Pipe、Value、Array实例
queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue & JoinableQueue queue用来在进程间传递消息,任何可以pickle-able的对象都可以在加入到queue. multiprocessing.JoinableQueue 是 Queue的子类,增加了task_done()和join()方法. task_done()用来告诉queue一个tas
-
Python进程间通信之共享内存详解
前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现.查了一下,Python中可以使用mmap模块来实现这一功能. Python中的mmap模块是通过映射同一个普通文件实现共享内存的.文件被映射到进程地址空间后,进程可以像访问内存一样对文件进行访问. 不过,mmap在linux和windows上的API有些许的不一样,具体细节可以查看mmap的文档. 下面看一个例子:
-
python 多进程通信模块的简单实现
多进程通信方法好多,不一而数.刚才试python封装好嘅多进程通信模块 multiprocessing.connection. 简单测试咗一下,效率还可以,应该系对socket封装,效率可以达到4krps,可以满足好多方面嘅需求啦. 附代码如下: client 复制代码 代码如下: #!/usr/bin/python# -*- coding: utf-8 -*-""" download - slave"""__author__ = 'Zagfai
-
python实现进程间通信简单实例
本文实例讲解了python实现两个程序之间通信的方法,具体方法如下: 该实例采用socket实现,与socket网络编程不一样的是socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)的第一个参数是socket.AF_UNIX 而不是 socket.AF_INET 例中两个python程序 s.py/c.py 要先运行s.py 基于fedora13/python2.6测试,成功实现! s.py代码如下: #!/usr/bin/env python im
-
python执行子进程实现进程间通信的方法
本文实例讲述了python执行子进程实现进程间通信的方法.分享给大家供大家参考.具体实现方法如下: a.py: import subprocess, time subproc = subprocess.Popen(['c:\python31\python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True) time.sleep(0.5) print('start') subproc.stdin.write('data\n') subproc.
-
Python进程通信之匿名管道实例讲解
匿名管道 管道是一个单向通道,有点类似共享内存缓存.管道有两端,包括输入端和输出端.对于一个进程的而言,它只能看到管道一端,即要么是输入端要么是输出端. os.pipe()返回2个文件描述符(r, w),表示可读的和可写的.示例代码如下: 复制代码 代码如下: #!/usr/bin/python import time import os def child(wpipe): print('hello from child', os.getpid()) while True:
-
Python进程间通信用法实例
本文实例讲述了Python进程间通信用法.分享给大家供大家参考.具体如下: #!/usr/bin/env python # -*- coding=utf-8 -*- import multiprocessing def counsumer(input_q): while True: item = input_q.get() #处理项目 print item #此处替换为有用的工作 #发出信号通知任务完成 input_q.task_done() def producer(sequence,outp
-
Python进程间通信Queue实例解析
本文研究的主要是Python进程间通信Queue的相关实例,具体如下. 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量: Queue.empty():如果队列为空,返回True,反之False : Queue.full():如果队列满了,返回True,反之False: Queue.get():获取队列中的一条消息,然后将其从列队中移除,可传参超时时长. Queue.get_nowait():相当Queue.get(False),取不到值时触发异常:Empty:
-
python多线程用法实例详解
本文实例分析了python多线程用法.分享给大家供大家参考.具体如下: 今天在学习尝试学习python多线程的时候,突然发现自己一直对super的用法不是很清楚,所以先总结一些遇到的问题.当我尝试编写下面的代码的时候: 复制代码 代码如下: class A(): def __init__( self ): print "A" class B( A ): def __init__( self ): super( B, self ).__in
-
Python随机数用法实例详解【基于random模块】
本文实例讲述了Python随机数用法.分享给大家供大家参考,具体如下: 1. random.seed(int) 给随机数对象一个种子值,用于产生随机序列. 对于同一个种子值的输入,之后产生的随机数序列也一样. 通常是把时间秒数等变化值作为种子值,达到每次运行产生的随机系列都不一样 seed() 省略参数,意味着使用当前系统时间生成随机数 random.seed(10) print random.random() #0.57140259469 random.seed(10) print rando
-
Python作用域用法实例详解
本文实例分析了Python作用域用法.分享给大家供大家参考,具体如下: 每一个编程语言都有变量的作用域的概念,Python也不例外,以下是Python作用域的代码演示: def scope_test(): def do_local(): spam = "local spam" def do_nonlocal(): nonlocal spam spam = "nonlocal spam" def do_global(): global spam spam = &quo
-
Python全局变量用法实例分析
本文实例讲述了Python全局变量用法.分享给大家供大家参考,具体如下: 全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量.今天有同事问一个关于全局变量的问题,才发现其中原来还有门道. 程序大致是这样的: CONSTANT = 0 def modifyConstant() : print CONSTANT CONSTANT += 1 return if __name__ == '__main__' : modifyConstant() print CONSTANT 运行结果如下:
-
python集合用法实例分析
本文实例讲述了python集合用法.分享给大家供大家参考.具体分析如下: # sets are unordered collections of unique hashable elements # Python23 tested vegaseat 09mar2005 # Python v2.4 has sets built in import sets print "List the functions within module 'sets':" for funk in dir(s
-
Python反射用法实例简析
本文实例讲述了Python反射用法.分享给大家供大家参考,具体如下: class Person: def __init__(self): self.name = "zjgtan" def getName(self): return self.name 反射的简单含义: 通过类名获得类的实例对象 通过方法名得到方法,实现调用 反射方法一: from person import Person theObj = globals()["Person"]() print th
-
python生成器用法实例详解
本文实例讲述了python生成器用法.分享给大家供大家参考,具体如下: 1. 生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据.为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator).生成器是一类特殊的迭代器. 2. 创建生成器方法1 要创建一个生成器,有很多种方法.第一种方法很简单,只要把
-
Python迭代用法实例教程
本文实例讲述了Python中迭代的用法,是一个非常实用的技巧.分享给大家供大家参考借鉴之用.具体分析如下: 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码: for (i=0; i<list.length; i++) { n = list[i]; } 可以看出,Python的f
随机推荐
- bootstrap的常用组件和栅格式布局详解
- 极酷的javascirpt,让你随意编辑任何网页
- Java设计模式之代理模式_动力节点Java学院整理
- 放弃 Python 转向 Go语言有人给出了 9 大理由
- Hammer.js+轮播原理实现简洁的滑屏功能
- jQuery+PHP+ajax实现微博加载更多内容列表功能
- mysql alter table命令修改表结构实例详解
- ASP.NET GridView的Bootstrap分页样式
- Java 非阻塞I/O使用方法
- C#实现写入文本文件内容的方法
- Jquery ajaxStart()与ajaxStop()方法(实例讲解)
- sqlserver存储过程中SELECT 与 SET 对变量赋值的区别
- js中hash和ico的关联分析
- jQuery代码优化之基本事件
- js判断变量初始化的三种形式及推荐用的形式
- AWStats简介:Apache/IIS的日志分析工具
- 浅析C++中模板的那点事
- Android仿开心消消乐大树星星无限循环效果
- 23种设计模式(14)java迭代器模式
- Python实现一个Git日志统计分析的小工具