zoukankan      html  css  js  c++  java
  • 多任务-python实现-使用队列完成进程间的通信(2.1.8)

    @

    1.为什么要使用队列

    进程之间是互相独立的,而线程能够共享全局变量
    所以如果进程间想要交换数据的话
    只有通过进程间的通信,比如socket。太麻烦
    在这里使用队列
    队列的特点:先进先出
    在这里插入图片描述

    2.python代码实现

     import multiprocessing
    
    def download_from_web(q):
        """下载数据"""
        #模拟从网上下载数据
        data = [11,22,33,44]
    
        #向队列写入数据
        for temp in data:
            q.put(temp)
    
        print("下载器已经下载完了数据并存入了队列中")
    
    
    def analysis_data(q):
        """数据处理"""
        waitting_analysis_data = list()
        #从队列中获取数据
        while True:
            data = q.get()
            waitting_analysis_data.append(data)
            if q.empty():
                break
        print(waitting_analysis_data)
    
    def main():
        #1.创建一个队列
        q = multiprocessing.Queue()
    
        #创建多个进程,将队列的引用当做实参进行传递
        p1 = multiprocessing.Process(target=download_from_web,args=(q,))
        p2 = multiprocessing.Process(target=analysis_data,args=(q,))
    
        p1.start()
        p2.start()
    
    if __name__ == '__main__':
        main()
    
  • 相关阅读:
    Path文件操作实例
    Cache缓存对象缓存对象
    Session对象实例
    移动端适配问题
    webpack4 优化性能
    webpack源码分析
    wepack源码解析1
    webpack面试题
    asnyc await
    node 知识
  • 原文地址:https://www.cnblogs.com/simon-idea/p/11318701.html
Copyright © 2011-2022 走看看