文档章节

python queue pip

hyhlinux
 hyhlinux
发布于 2016/06/21 10:30
字数 264
阅读 54
收藏 0

1.Queue self._reader, self._writer = Pipe(duplex=False) 管道描述符 5/6 self._rlock = Lock() self._opid = os.getpid()

self._wlock = Lock()

输入图片说明

#coding:utf-8

from multiprocessing import Process, Queue import os, time, random

写数据进程执行的代码:

def write(q): for value in ['A', 'B', 'C']: print 'Put %s to queue...' % value q.put(value) time.sleep(random.random())

读数据进程执行的代码:

def read(q): while True: value = q.get(True) print 'Get %s from queue.' % value

if name=='main': # 父进程创建Queue,并传给各个子进程: q = Queue() pw = Process(target=write, args=(q,)) pr = Process(target=read, args=(q,)) # 启动子进程pw,写入: pw.start() # 启动子进程pr,读取: pr.start() # 等待pw结束: pw.join() # pr进程里是死循环,无法等待其结束,只能强行终止: pr.terminate()

========================= w:q.put() def put(self, obj, block=True, timeout=None)://obj是数据 assert not self._closed if not self._sem.acquire(block, timeout): raise Full

    self._notempty.acquire()
    try:
        if self._thread is None:
            self._start_thread()
        self._buffer.append(obj)//self._buffer.append拿到写者数据.
        self._notempty.notify()//通知读
    finally:
        self._notempty.release()

r: q.get() def get(self, block=True, timeout=None): if block and timeout is None: self._rlock.acquire()//管道可读 try: res = self._recv()// ‘A..‘读出数据 self._sem.release() return res finally: self._rlock.release()//释放’rlock‘

© 著作权归作者所有

hyhlinux
粉丝 8
博文 183
码字总数 62224
作品 0
海淀
程序员
私信 提问
如何利用多进程优化Python视频应用

如果要用Python播放视频,或者打开摄像头获取视频流,我们可以用OpenCV Python。但是在视频帧获取的时候同时做一些图像识别和处理,可能会因为耗时多而导致卡顿。一般来说,我们首先会想到把...

yushulx
2018/09/04
272
0
Python RPC 远程调用脚本之 RPyC 实践

最近有个监控需求,需要远程执行集群每个节点上的脚本,并获取脚本执行结果,为了安全起见不需要账号密码登陆节点主机,要求只需要调用远程脚本模块的方法就能实现。 总结下python进行远程调...

大数据之路
2015/06/28
5.4K
0
Django-celery运行报错

运行python manage.py celery worker -l INFO时报错: Traceback (most recent call last): File "D:sofapythonlibsite-packagesceleryworker_init_.py", line 206, in start self.blueprint......

冰封心动
08/28
0
0
Centos下安装Python3.6

一、安装python3.6.1 1、安装依赖环境 #yum install readline-devel ##必须安装否则会出现python3编译器中不能使用退格键和方向键 2、下载安装包并解压 [root@bogon ~]# wget https://www.p...

argen2020
2018/06/26
0
0
Mac下python2与python3共存问题

python从入门到放弃; mac os系统里面自带了python2,当我们需要学习python3的时候就要自己安装python3,就会出现python2与python3共存。新手不懂就会出现一系列的问题。 比如安装库的时候就...

服说八道
2018/01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c语言实现Sqlite3的创建db和增删改查db操作

SQLite,是一款轻型的数据库,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中使用广泛,现在准备学习一下sqlite3的使用方法并写一个测试demo,后面在项目智能...

jorin_zou
16分钟前
3
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第2题

choose three Which three are true about the CREATE TABLE command? A) It can include the CREATE...INDEX statement for creating an index to enforce the primary key constraint. B) ......

oschina_5359
19分钟前
3
0
如何在二维码中循环批量插入图片

现在二维码种类比较多,为了突出二维码的个性及吸引客户,很多朋友都喜欢在二维码上插入图片。想要每个二维码都与众不同,但是有的时候需要批量插入图片数量有限,如果制作的二维码比较多的话...

中琅软件
20分钟前
4
0
LTR那点事—AUC及其与线上点击率的关联详解

LTR(Learning To Rank)学习排序是一种监督学习(SupervisedLearning)的排序方法,现已经广泛应用于信息索引,内容推荐,自然语言处理等多个领域。以推荐系统为例,推荐一般使用多个子策略...

达观数据
20分钟前
3
0
IntelliJ 如何显示代码的代码 docs

希望能够在 IntelliJ 代码上面显示方法的 docs。 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs。 https://blog.ossez.com/archives/3061...

honeymoose
23分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部