并发编程(二)
在后续学习多线程、多进程、协程之前,对一些概念要清楚:
1、进程
资源分配的基本单位,也可以理解为操作系统中正在执行的程序,每个应用程序都有一个自己的进程
特点:对python而言,可以实现真正的并行效果
缺点:进程间切换,开销大,容易消耗CPU资源,进程间通信相对线程来说比较麻烦
一个进程启动时都会最先产生一个线程,即主线程,然后主线程会创建其他的子线程
2、线程
独立运行和独立调度的基本单位,一个基本的CPU执行单元,他必须依托于进程存活,是进程中最小的执行单位
特点:无法利用多核,无法实现真正意义上的并行效果
缺点:对于IO密集型的操作可以很好利用IO阻塞的时间
3、进程和线程的区别
3.1、线程必须在某个进程中执行
3.2、一个进程可包含多个线程,其中有且只有一个主线程
3.3、多线程共享同一个内存地址、打开的文件以及其他资源
3.4、多进程共享物理内存、磁盘、打印机以及其他资源
4、死锁
概念:多个进程、线程在运行过程中因竞争同一资源而产生的一种僵局
产生的原因:
3.1、竞争资源
3.2、进程间推进顺序非法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!