并发编程
# 1 操作系统发展史
# 2 进程基础:操作系统上运行的程序,是资源分配的最小单位
# 3 进程调度:时间片轮转法
# 4 并发和并行
# 5 同步,异步,阻塞,非阻塞
# 6 python创建进程
-两种方式:
-类继承:Process,重写run方法
-Process(target=任务)
-Process 属性和方法
-python启动一个进程:相当于,又开了一个python解释器,执行这个代码
-进程间数据是隔离的:进程间通信
# 7 进程同步:锁
# 8 进程间通信:Queue 队列
# 9 进程间数据共享
# 10 线程是什么:cpu调度的最小单位,真正执行程序的 每个进程下至少有一个主线程
# 11 创建多线程
-两种方式:Thread
# 12 GIL全局解释器锁:对Python由全局解释器锁(GIL)来控制,正是这个锁能保证同一时刻只有一个线程在运行
-作用:一个进程下开启的多个线程,必须获得GIL锁,才能运行
-为什么有呢?
-当年没有多核,为了处理方便,就加了gil
-python垃圾回收机制,垃圾回收线程
-(cpython解释器)大的互斥锁,获得锁才能运行,释放锁,被别的线程抢到才能执行
# 13 守护线程
# 14 锁:互斥锁,递归锁,信号量,event事件
-互斥锁:作用,多线程并发操作变量时,保证数据安全
-递归锁,可重入锁:科学家吃面问题:死锁问题
-https://zhuanlan.zhihu.com/p/489305763
# 15 线程队列 queue
-线程间通信:共享变量
-线程间通信,使用queue,不需要使用锁了
# 16 线程池和进程池
# 17 协程:单线程下实现并发
# 18 gevent 实现协程(第三方实现)
-io操作,使用gevent的io
-同步:time.sleep()
# 19 asyncio实现协程
# 20 异步框架
# 有了gil锁为什么还要互斥锁?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现