进程间的通信小例子

进程间的通信

 1 import multiprocessing
 2 import time
 3
 4 def write_quene(quene):
 5     for i in range(10):
 6         if quene.full():
 7             print("quene is full")
 8             break
 9         quene.put(i)
10         print("input  successfully:",i)
11
12 def read_quene(quene):
13     while True:
14         if quene.empty():
15             print("The quene is empty,can not output")
16             break
17
18         value = quene.get()
19         print(value)
20
21 if __name__ == ‘__main__‘:
22     quene = multiprocessing.Queue()
23     write_process  = multiprocessing.Process(target=write_quene,args=(quene,))
24     read_process  = multiprocessing.Process(target=read_quene,args=(quene,))
25
26     write_process.start()
27     # 由于两个进程同时进行读入和取出会造成预取之外的效果,因此用join先执行一个进程
28     write_process.join()
29     read_process.start()

原文地址:https://www.cnblogs.com/liuxjie/p/11984918.html

时间: 2024-10-21 03:58:53

进程间的通信小例子的相关文章

Linux进程间的通信

一.管道 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: A. 管道是半双工的,数据只能向一个方向流动: B. 需要双工通信时,需要建立起两个管道: C. 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): D. 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中. 匿名管道的创建:该函数创建的管道的两端处于一个进程中间,在实际应用中没有太大意义;因此,一

从AIDL开始谈Android进程间Binder通信机制

本文首先概述了Android的进程间通信的Binder机制,然后结合一个AIDL的例子,对Binder机制进行了解析. 概述 我们知道,在Android app中的众多activity,service等组件可以运行在同一进程中,也可以运行在不同进程中.当组件运行在同一进程中进行通信就显得比较简单,在之前的Android线程间通信机制中已经讲过了:而当它们运行在不同的进程中时,就需要使用我们本文中所要介绍的Binder机制了. Binder作为一种进程间通信机制,负责提供远程调用的功能(RPC),

进程间的通信——邮槽与命名管道d

进程间的通信是指在系统中两个或多个进程之间通过第三方进行数据共享. 1.邮槽. 邮槽是window系统提供的一种单向通信的机制.即进程中的一方只能写入或者读取数据,而另一方则只能读取或写入数据.通过邮槽,可以实现一对多或跨网络的进程之间的通信.但邮槽传输的数据量非常小,一般只有400KB左右. 邮槽创建函数CreateMailslot,函数原型: HANDLE CreateMailslot( LPCTSTR lpName, // mailslot name DWORD nMaxMessageSi

Linux/UNIX进程间的通信(1)

进程间的通信(1) 进程间的通信IPC(InterProcessCommunication )主要有以下不同形式: 半双工管道和FIFO:全双工管道和命名全双工管道:消息队列,信号量和共享存储:套接字和STREAMS 管道 pipe函数 当从一个进程连接到另一个进程时,我们使用术语管道.我们通常是把一个进程的输出通过管道连接到另一个进程的输入. 管道是由调用pipe函数创建的: #include<unistd.h> int pipe(intpipefd[2]); 经由参数pipefd返回两个文

Android进程间的通信之Messenger

Android进程间的通信方式可以通过以下两种方式完成: 1 Android接口定义语言(AIDL) 2 使用Messenger绑定服务 本文我们将学习使用Messenger绑定服务的方式进行进程间的通信. Android AIDL和Messenger区别 使用Messenger是执行进程间通信最简单的方法,因为Messenger会在单一线程中创建包含所有请求的队列,这样您就不必对服务进行线程安全设计.而纯粹的AIDL接口会同时向服务发送多个请求,服务随后必须应对多线程处理.AIDL通常应用在服

Linux/UNIX之进程间的通信(2)

进程间的通信(2) 有三种IPC我们称为XSI IPC,即消息队列.信号量以及共享存储器,它们之间有很多相似之处. 标识符和键 每个内核的IPC结构(消息队列.信号量或共享存储段)都用一个非负整数的标识符加以引用.例如,为了对一个消息队列发送或取消息,只需要知道其队列标识符.与文件描述符不同,IPC标识符不是小的整数.当一个IPC结构被创建,以后被删除时,与这种结果相关的标识符连续加1,知道达到一个整型数的最大值,然后又回到0. 标识符是IPC对象的内部名.为使多个合作进程能够在同一IPC对象上

python全栈开发day32-进程创建,进程同步,进程间的通信,进程池

一.内容总结 1.进程创建 1) Process:两种创建一个新进程的方法: 1.实例化Process,通过args=(,)元组形式传参,2创建类继承Process,类初始化的时候传参数 2) p.join(),阻塞主进程,执行完p进程后,释放 3)  守护进程 ,守护主程序代码执行完毕,p.daemon = True import time from multiprocessing import Process def func(): while True: print('is alive')

Android 使用AIDL实现进程间的通信

在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成. AIDL(android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,我们无需自己去写这段繁杂的代码,只需要在需要的时候调用即可,通过这种方式我们就可以完成进程间的通信工作.关于AIDL的编写规则我在这里就不多介绍了,读者可以到网上查找一下相关资料. 接下来,我就演示一个操作AIDL的最基本的流程. 首先,我

进程间的通信如何实现

进程间的通信如何实现 版权声明:本文为博主原创文章,未经博主允许不得转载.