`
Ydoing
  • 浏览: 106137 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

python中multiprocessing模块之Pipe管道

 
阅读更多

multiprocessing.Pipe([duplex])
返回2个连接对象(conn1, conn2),代表管道的两端,默认是双向通信.如果duplex=False,conn1只能用来接收消息,conn2只能用来发送消息.不同于os.open之处在于os.pipe()返回2个文件描述符(r, w),表示可读的和可写的

实例如下:

#!/usr/bin/python
#coding=utf-8
import os
from multiprocessing import Process, Pipe

def send(pipe):
    pipe.send(['spam'] + [42, 'egg'])
    pipe.close()

def talk(pipe):
    pipe.send(dict(name = 'Bob', spam = 42))
    reply = pipe.recv()
    print('talker got:', reply)

if __name__ == '__main__':
    (con1, con2) = Pipe()
    sender = Process(target = send, name = 'send', args = (con1, ))
    sender.start()
    print "con2 got: %s" % con2.recv()#从send收到消息
    con2.close()

    (parentEnd, childEnd) = Pipe()
    child = Process(target = talk, name = 'talk', args = (childEnd,))
    child.start()
    print('parent got:', parentEnd.recv())
    parentEnd.send({x * 2 for x in 'spam'})
    child.join()
    print('parent exit')

输出如下:

con2 got: ['spam', 42, 'egg']
('parent got:', {'name': 'Bob', 'spam': 42})
('talker got:', set(['ss', 'aa', 'pp', 'mm']))
parent exit
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Python multiprocessing模块中的Pipe管道使用实例

    接下来,我们详细讲解如何在Python的multiprocessing模块中使用Pipe管道。 Pipe()函数的语法是 multiprocessing.Pipe([duplex]),其中duplex参数是一个可选参数,默认值为True。当duplex设置为True时,管道是双向的...

    Python3多进程 multiprocessing 模块实例详解

    通过`multiprocessing`模块,开发者可以在Python中轻松地实现多进程编程,利用多核处理器的优势,提高程序的执行效率。但同时,也需要根据具体的任务类型和需求选择合适的并发模型,以达到最佳性能。

    pipe_管道_python_

    在Python编程中,"pipe"一词通常指的是进程间通信(IPC, Inter-Process Communication)的一种方式,即管道。管道允许两个或多个进程之间共享数据流,尤其在处理子进程和父进程之间的通信时非常有用。本文将深入探讨...

    Python进程Process模块-Python零基础入门教程.pdf

    Python中的进程可以通过`multiprocessing`模块进行创建和管理。进程间的通信通常需要通过共享内存、管道、队列等方式实现,因为它们各自拥有独立的内存空间,无法直接访问对方的数据。 **二、Python进程Process模块...

    python multiprocessing模块用法及原理介绍

    总的来说,`multiprocessing`模块是Python中实现多进程编程的强大工具,通过合理使用,可以在多核系统上实现高效的并发处理。然而,需要注意的是,进程间通信和同步可能会引入额外的复杂性,如使用`Queue`和`Pipe`时...

    python基于multiprocessing的多进程创建方法

    3. **`multiprocessing`模块**:它是Python的标准库之一,提供了一种方便的方式来利用多核处理器的能力。 #### 二、创建多进程的基本方法 在`multiprocessing`模块中,有两种主要的方式可以创建多进程: 1. **...

    Python使用multiprocessing实现一个最简单的分布式作业调度系统

    #### 二、multiprocessing模块简介 `multiprocessing`模块提供了一种编写并行代码的方式,能够帮助开发者更好地利用多核CPU的计算资源。该模块的核心功能包括: - **进程管理**:创建、管理和销毁进程。 - **进程间...

    python通信

    管道通信的关键在于,数据在发送方被写入管道后,可以在接收方读取,但是一旦数据被读取,它就会从管道中消失。因此,这种通信方式适用于一次性的、非持久的数据交换。 总的来说,Python 3.6中的管道通信是一种强大...

    Python多进程multiprocessing用法实例分析

    `multiprocessing`模块提供了多种方式来进行进程间通信,如队列(Queue)、管道(Pipe)和共享内存(Value/Array)。这些通信机制允许进程之间交换数据,实现协同工作。 **终止进程** 有时需要强制终止进程,可以...

    Python多进程例子代码.zip_Python多进程例子代码_py代码过长_py多进程

    Python的多进程编程是通过`multiprocessing`模块来实现的,这个模块提供了进程管理功能,使得我们可以方便地创建和管理多个并发执行的进程。在Python中,与多线程相比,多进程通常能更好地利用多核处理器的资源,...

    Python进程的通信Queue、Pipe实例分析

    本篇文章主要探讨了两种在Python中实现进程通信的方式:Queue(队列)和Pipe(管道),这两种方式都属于multiprocessing模块的一部分。 **进程通信Queue** Queue(队列)是一种先进先出(FIFO)的数据结构,它在多...

    python中管道用法入门实例

    在Python的`multiprocessing`模块中,`Pipe()`函数用于创建一个双向管道,可以实现两个进程之间的双向通信。 下面,我们来解析这个实例中的关键代码部分: 1. **创建管道**: ```python (output_p , input_p ) =...

    python中的多线程与多进程及其区别(csdn)————程序.pdf

    【Python中的多线程与多进程】 在Python编程中,多线程...Python的`multiprocessing`模块提供了强大的多进程支持,`threading`模块则实现了线程同步机制。在选择多线程还是多进程时,应根据任务特性及系统资源来确定。

    python实现 进程创建、控制与撤消

    2. **multiprocessing模块** - `multiprocessing`模块是Python的标准库之一,提供了类似POSIX `fork()`的功能,用于创建子进程。 - 主要包含以下关键组件: - `Process`: 表示一个进程对象,可以调用其`start()`...

    Python之分布式进程共8页.pdf.zip

    Python的`multiprocessing`模块虽然提供了进程间的通信机制,如管道(Pipe)和队列(Queue),但并不直接支持跨机器的分布式。这时,我们可以借助第三方库,如`mpi4py`(基于MPI的Python接口)或`Pyro4`(远程对象...

    Python之多进程共8页.pdf.zip

    本资料"Python之多进程共8页.pdf"可能详细介绍了Python的多进程模块及其核心概念。下面将根据这个主题展开深入的讨论。 一、Python的多进程模块 Python的`multiprocessing`模块提供了创建和管理多个独立进程的能力...

    python多进程间通信代码实例

    Python通过multiprocessing模块提供了支持创建进程的类和函数,使得进程间通信(IPC)变得简单和方便。本文将介绍Python多进程间通信的代码实例,帮助大家更好地理解和运用Python多进程编程技术。 ### Python 多...

    python并发编程++++++

    #### 一、进程并发(multiprocessing模块) 在Python中,由于全局解释器锁(GIL)的存在,多线程并不能充分利用多核CPU的优势。因此,为了提高程序性能,尤其是在进行大量计算任务时,通常采用多进程的方式。`...

Global site tag (gtag.js) - Google Analytics