优草派 > Python

Python进程间通信代码怎么写?Python如何用队列实现进程间通信

罗西汉         优草派

在之前的一些文章之中小编大多数来给大家讲解和介绍的知识都是某些方法的实现或者是使用教程,但是这些都是比较浅显只需要知道用法的知识。那么这篇文章会涉及到底层系统相关的进程间通信知识,感兴趣的和想要了解的小伙伴可以继续阅读哦。

Python进程间通信代码怎么写?Python如何用队列实现进程间通信

一、进程间通信

进程是计算机系统进行资源分配和调度的基本单位,用最简单的话来说就是,一个程序运行时会给它去分配资源,那么该程序就是一个进程,或者是在进程上去运行。那么进程间通信就是通过公共的共享内存空间,来实现数据的交换或者是信息传输。

例如现在有一个python进程需要向另外一个进程传输一个信息,那么另外一个进程接收信息就是完成了一次进程间通信操作。

二、python队列实现进程间通信

Python能够完成进程间通信的基础就是创建多进程,所以需要先将multiprocessing这个第三方库给导入进来,然后去写两个函数。函数其一就是向队列中写入数据,而函数其二就是从队列中读取数据。这个队列就相当于上文提到的共享内存空间,而实际上消息都是顺序排列在其中的,它更像是一个管道,代码如下:

from multiprocessing import Process, Queue
import time
def write_task(q):
    if not q.full():
        for i in range(5):
            q.put(message)
            print("写入:%s" % "消息" + str(i))
def read_task(q):
    time.sleep(1) 
    while not q.empty():
        print("读取:%s" % q.get(True, 2))

那么调用这两个函数的代码就需要写在main语句块之中,先调用Queue()方法来创建进程,然后再用Process()方法将消息传递给队列。之后就是启动子进程和父进程,然后等待进程结束了,详细代码如下:

if __name__ == "__main__":
      q = Queue()
      pw = Process(target=write_task, args=(q,))
    pr = Process(target=read_task, args=(q,))
    pw.start()
    pr.start()
    pw.join()
    pr.join()

以上就是关于“Python进程间通信代码怎么写?Python如何用队列实现进程间通信”的全部内容了,希望对你有所帮助。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024