Python学习笔记十

守护进程

  p.daemon=True

  必须在p.start()之前设置。

  守护进程内不能再开子进程。

        在主进程中开启守护进程(就是一个子进程)

  什么时候应该把子进程设置为守护进程?

    开子进程的目的:就是为了并发执行任务

    子进程与主进程生命周期一样,那么必须把这个子进程设置为守护进程。

  迷惑例子:

    守护进程到底什么时候死?    主进程执行完最后一行代码,守护进程就死了。

    主进程到底什么时候执行完毕?   主进程执行完最后一行代码

    主进程到底什么时候算死掉?  等到所有的非守护进程的子进程都死掉,主进程才死。

    主进程执行完毕以后,是否意味着主进程会立马死掉?   不是

 

IPC机制:队列和管道

  队列的使用

  q.put

  q.get

互斥锁   from  multiprocessing  import  Lock

  模拟抢票

    查看有多少票

    

  acuquire 只能执行一次

  lock 可以实现局部串行

  join实现整体串行

  互斥锁一定要传给子进程。

 

生产者消费者模型
    生产者:生产数据,造数据

    消费者:消费数据,处理数据

 

 

共享内存

from multiprocessing import Manager

  

回调机制

 

线程

  开启线程的两种方式

  

  GIL全局解释器锁与互斥锁

  

  线程池

协程

  单线程下实现并发

  

posted @   奋斗史  阅读(120)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
阅读排行:
· 聊一聊 C#异步 任务延续的三种底层玩法
· 上位机能不能替代PLC呢?
· 2024年终总结:5000 Star,10w 下载量,这是我交出的开源答卷
· 一个适用于 .NET 的开源整洁架构项目模板
· .NET Core:架构、特性和优势详解
点击右上角即可分享
微信分享提示