首页 > 系统相关 >进程间通信

进程间通信

时间:2023-09-26 15:26:34浏览次数:25  
标签:__ Queue get 队列 间通信 print 进程

队列Queue模块

队列:先进先出

堆栈:现金后出

import queue 或者from mulitiprocessing import queue 下面创建时就写都可以q=Queue()  可以帮我们生成一个队列

创建一个队列:

q=queue.Queue()# 括号内可以传数据 标识生成的队列最大可以同时存放的数据量,不写有默认值

#往队列中存数据

q.put(111)#当队列数据放满了以后  如果还有数据要放程序会阻塞  直到有位置让出来

                     #v2=q.get_nowait()    #数据不够时会堵塞不显示,加这个如果没有数据给他的话就会报错

      #print(q.full())   #判断当前队列是否满了

      #print(q.empty()) #判断当前队列是否空了  以上三个在多进程中是不精确的

      

存取数据 存是为了更好的取

千方百计的存  简单快捷的取

#去队列中取数据

v1=q.get()

print(v1)  如果队列中已经没有数据的话  get方法方法会原地阻塞

 

 

管道:subprocess

stdin stdout (正确结果)  stdess(错误结果)

IPC机制:借助队列实现队列与队列之间的通信

from multiprocessing  import Queue,Process

研究思路:

1.主进程跟子进程借助于队列通信

def producer(q):   函数名字自己起

  q.put('老板你好')  往队列里面添加一个信息

  print('hello')

 

 

 

if __name__=='__main__':

  q=Queue()

  p=Process(target=producer,args=(q,))

  p.start()

  q.get() 如何、给没数据就等一会

2.子进程跟子进程借助于队列通信

 

标签:__,Queue,get,队列,间通信,print,进程
From: https://www.cnblogs.com/97zs/p/17705503.html

相关文章

  • 进程对象
     os.getpid() 获取子进程os.getppid()  获取子进程的父进程p.terminate()  告诉操作系统杀死当前进程但是代码的运行时间非常快会来不及杀死所以需要时间的预留,所以要在这个后面预留一点时间 例如time.sleep(0.1)p.is_alive() 判断当前进程是否存活 一般情......
  • 操作系统发展史、多道技术、进程
    操作系统发展史:其实就是主要围绕CPU的利用率问题穿孔技术------>联机---------------->脱机多道技术:单核实现并发的效果并发:看起来像同时运行的并行:真正意义上的同时运行空间与实践上的复用:空间上:多个程序公用一套计算机硬件时间上:切换+保......
  • 网络协议的重要性与应用:理解进程间通信和网络分层结构(上)
    进程间通信有多种方式,包括管道、消息队列、共享内存和信号等。然而,如果不同设备上的进程需要进行通信,就只能通过网络来实现。由于设备的多样性,为了兼容各种设备,就需要一个统一通用的网络协议。学习网络协议的关键是了解其分层结构。之前在计算机基础专栏已经提到过网络分层的好处......
  • linux进程相关
      查看进程运行时间ps-eopid,etime,cmd|grep180600180600329-19:33:44java-jarwxproject-1-SNAPSHOT.jar-e:显示所有进程,包括没有终端的进程。-opid,etime,cmd:指定输出的格式,其中pid是进程ID,etime是运行时间,cmd是进程的命令行。输出中的ELAPSED列显......
  • Supervisor 进程管理
    Supervisor进程管理概述:supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。1.构成要素Supe......
  • Linux-----进程、线程、协程的生命周期、调度器slab
    Linux进程、线程、协程的区别进程进程是操作系统中的一个独立执行单元。每个进程都有自己的独立内存空间,包括代码段、数据段、堆栈等。进程之间通常需要通过进程间通信(IPC)来交换数据和信息。进程启动和销毁开销较大,因为需要分配和释放独立的内存空间。进程之间隔离度高,一个......
  • 进程和线程之间区别
    进程和线程是计算机科学中重要的概念,用于描述程序执行的不同方式和组织形式。进程(Process):进程是程序的一次执行过程,是计算机系统分配资源的基本单位。每个进程拥有独立的内存空间,包括代码、数据、堆栈等,使得进程间的数据不共享,相互隔离。进程可以包含多个线程,共享该进程的......
  • 【技术研究】线程和进程
    有一句概念“进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。”分上下句去理解他吧,首先贴一张图所看到是一个进程的内存空间,分为一些栈区,堆区,一些资源区等等。“进程是操作系统资源分配的基本单位”,进程包含一个程序的执行实例,说的具体点就是他有......
  • 7.7 实现进程内存读写
    内存进程读写可以让我们访问其他进程的内存空间并读取或修改其中的数据。这种技术通常用于各种调试工具、进程监控工具和反作弊系统等场景。在Windows系统中,内存进程读写可以通过一些API函数来实现,如OpenProcess、ReadProcessMemory和WriteProcessMemory等。这些函数提供了一种通......
  • 22消息队列实现进程间的通讯
    通过消息队列实现进程间的通讯 frommultiprocessingimportProcess,Queuefromtimeimportsleep#向队列中写入数据defwrite_task(q):ifnotq.full():foriinrange(5):message='消息'+str(i)q.put(message)......