zoukankan      html  css  js  c++  java
  • Python学习笔记(五):Interprocess Communication

    Python学习笔记(五):Interprocess Communication - SamWei - 博客园

          Python为进程间的通信(Interprocess Communication,IPC)提供了4种机制:匿名管道(Anonymous pipes),命名管道(Named pipes),套接字(Sockets)以及信号量(Signals)。

          管道(Pipes)是一种跨程序的通信设备,由操作系统实现。管道是一个单向通道,类似于共享内存,在管道的两端提供搜集简单文件的接口。通常,一个程序向管道的一端写数据,另一个程序在管道的另一端读取数据。一个程序只能看到属于它自己的管道的那一端,并象处理普通的Python文件一样处理这些数据。

          匿名管道(Anonymous pipes)通常与进程fork方法一块工作,将父进程和子进程通过共享的管道文件描述符联系起来。匿名管道也适用于线程。os模块pipe方法生成匿名管道。

          命名管道(Named pipes)对应于操作系统的文件系统,由电脑中的一个文件表示。命名管道又称为fifos。通过命名管道进行通信的进程可以是相互独立的。os.mkfifo创建一个命名管道,实际上就是创建一个外部文件,因此需要指定一个文件路径。

          套接字(Sockets)是一种比管道更加通用的IPC机制。套接字允许位于同一台电脑上的不同程序相互传输数据,同时它还允许位于网络中不同电脑上的程序间进行通信。当套接字作为同一台机器上的IPC机制,程序通过机器全局的端口与套接字进行连接。当套接字用于网络连接,程序需提供机器名和端口号。Python中的socket模块提供了与套接字相关的方法,如bind,listen,accept,recv,send等。

          信号量(Signals)允许程序向其他程序发送简单的通知事件,并触发相应的行为。Python提供signal模块来将Python函数注册为特定信号的处理者。

          Python中提供了multiprocessing模块实现子进程生成及多进程间通信。该模块提供了进程类Process,锁类Lock,同时还提供了IPC工具Pipe(匿名的管道),共享内存(Value和Array),以及队列Queue。

  • 相关阅读:
    iis里不能同时启动多个站点的原因总结:
    相机200万提升到300万的软件技术插值法
    nginx与PHP的安装配置
    IIS和apache都要同时使用80端口的解决办法
    nginx安装与配置
    只写一个表单,可以达到两个表单的效果
    nginx伪静态规则
    伪静态涉及到的重复页面之属性canonical
    ckeditor与ckfinder组合配置
    上传图片的美化
  • 原文地址:https://www.cnblogs.com/lexus/p/2422085.html
Copyright © 2011-2022 走看看