专栏首页python3进程间的通信

进程间的通信

使用 multiprocessing 里的 Queue()

import multiprocessing


def download_from_web(q):
    """下载数据"""

    # 模拟从网上下载的数据
    data = [11, 22, 33, 44]

    # 向队列中写入数据
    for temp in data:
        q.put(temp)

    print("下载器已经下载完了数据并且存入到队列中")


def analysis_data(q):
    """数据处理"""

    waiting_analysis_data = list()

    while True:
        # 从队列中获取数据
        data = q.get()
        waiting_analysis_data.append(data)

        # 判断队列是否为空
        if q.empty():
            break

    # 模拟数据处理(如单核CPU只能打印[11])
    print(waiting_analysis_data)


def main():
    # 1.创建一个队列
    q = multiprocessing.Queue()
    # 2.创建多个进程,将队列的引用当做实参进行传递到里面
    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()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python_冒泡排序

    从小到大的排序:(最前面的数和一步步和后面的数比较,如果大于则交换,如果不大于则继续循环)

    py3study
  • 用Python可视化股票指标

    但是一个量化交易可以通过回测系统建立信心然后让其一如既往的运行,以达到让钱生钱的目的,并且是自动的。

    py3study
  • python(实操4):录音文件的读取、

    py3study
  • ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

    由此可见新语法比较简洁,能少写3行代码。但是这样有一个缺陷,在新语法下如果it_data内表内不存在object_ext的值为cl_crm_prodil_bo_...

    Jerry Wang
  • 爬虫入门一把搜

    # -*- coding:UTF-8 -*-import urllib.requestimport urllib.parseurl = 'http://fany...

    天钧
  • 关于css选择器的问题 + * ~这三个有什么区别

    杭州前端工程师
  • R分类算法-决策树算法

    决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数据进行分类预测,属于有监督学习。 优点: 决策...

    Erin
  • Python常见数据框操作①

    用户1359560
  • 你绝没用过的一款高级空间可视化工具

    说起 Python 中的可视化,我们一般用的最多的是 Matplotlib,绘制一般的图效果都很好。有时候也会用风格比较好看的 Pyecharts 库,尤其是在...

    AI科技大本营
  • 12种用于Python数据分析的Pandas技巧

    本文将介绍12种用于数据分析的Pandas技巧,为了更好地描述它们的效果,这里我们用一个数据集辅助进行操作。

    崔庆才

扫码关注云+社区

领取腾讯云代金券