第三十四次总结:进程,可等待队列,事件,进程模块中对象的共性,JoinableQueue

本文深入探讨了进程的特点,强调了进程间数据独立性,并详细介绍了用于进程间通信的各种工具,包括Queue、JoinableQueue、Pipe和Manager等数据交流工具,以及Lock、Semaphore和Event等控制工具。特别讲解了JoinableQueue的特性与用法,如task_done和join方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程

  • 特点

    • 多个进程间,数据不可以共用。数据有保障。

    • 多个进程间,数据无法共用。

    • 如果希望两个进程数据有交流,需要用到一些工具。

  • 工具

    • 数据交流工具

      • Queue

      • JoinbaleQueue

      • Pipe

      • Manage

    • 控制工具

      • Lock

      • Semaphore

      • Event

 

可等待的队列

joinablequeue

事件

  • 创建事件对象

    事件对象 = multiprocessing.Event()

    理解为,制定了一个行动计划

  • 等待行动指令

    事件对象.wait()
  • 开始行动

    事件对象.set()
  • 取消行动,继续回归到等待状态(潜伏状态)

    事件对象.clear()
  • 判断当前的事件状态

    事件对象.is_set()

     

进程模块中对象的共性

一端发生变化,另一端可以感知到

 

 

JoinableQueue

  • 可等待的连接

  • 特点

    • 比普通的进程队列功能增强,多了task_done与join方法

  • 用法

    • 创建

      jq = multiprocessing.JoinableQueue(容量)

       

    • 取数据时

      jq.get()
      jq.task_done()

      取出数据后一定要调一下task_done(),否则计数不减的话,join()无法感知

    • 等待连接

      jq.join()

      当队列中有数据时会阻塞,当队列中的数据计数为零时,会解阻塞

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值