Python学习笔记十
守护进程
p.daemon=True
必须在p.start()之前设置。
守护进程内不能再开子进程。
在主进程中开启守护进程(就是一个子进程)
什么时候应该把子进程设置为守护进程?
开子进程的目的:就是为了并发执行任务
子进程与主进程生命周期一样,那么必须把这个子进程设置为守护进程。
迷惑例子:
守护进程到底什么时候死? 主进程执行完最后一行代码,守护进程就死了。
主进程到底什么时候执行完毕? 主进程执行完最后一行代码
主进程到底什么时候算死掉? 等到所有的非守护进程的子进程都死掉,主进程才死。
主进程执行完毕以后,是否意味着主进程会立马死掉? 不是
IPC机制:队列和管道
队列的使用
q.put
q.get
互斥锁 from multiprocessing import Lock
模拟抢票
查看有多少票
acuquire 只能执行一次
lock 可以实现局部串行
join实现整体串行
互斥锁一定要传给子进程。
生产者消费者模型
生产者:生产数据,造数据
消费者:消费数据,处理数据
共享内存
from multiprocessing import Manager
回调机制
线程
开启线程的两种方式
GIL全局解释器锁与互斥锁
线程池
协程
单线程下实现并发
一往无前虎山行,拨开云雾见光明
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
· 聊一聊 C#异步 任务延续的三种底层玩法
· 上位机能不能替代PLC呢?
· 2024年终总结:5000 Star,10w 下载量,这是我交出的开源答卷
· 一个适用于 .NET 的开源整洁架构项目模板
· .NET Core:架构、特性和优势详解