线程&进程
2023-06-13 09:12:01 时间
线程和进程是计算机任务处理中的两个概念,一个进程相当于计算机处理的一个任务,一个任务可以找通过多种方式或者找多个不同的人去执行,每一个人或者每一种方式就是一种线程。
- 多进程问题涉及的是任务的分工问题,一般来说是将一个复杂的任务拆分成多个子任务,每一个子任务执行的时候其它子任务也可以同时执行,例如分布式计算。这种分工的好处是可以保证资源的充分利用,但是如果父任务的执行出现错误或者计算错误,那么后边的任务也会受到影响。多进程问题的优化主要是一个多任务管理的方式问题,一般常用的一种方法是队列。
- 多线程问题主要涉及到的是协作问题,通过建立多个可以独立完成任务的线程来完成任务,很明显的一个优势是运行的效率会比较高。但是当线程之间如果使用同样的变量时则会存在并发的风险,这会大大降低多线程工作的效率,一般来说多线程的优化问题主要是如何减少线程之间的相互影响,一种比较有效的方式就是加一层锁,限制做个线程同时对一个变量进行更改的权利
在 Python 中,线程不能加速受 CPU 限制的任务,原因是标准 Python 系统中使用了全局解释器锁(GIL)。 GIL 的作用是避免 Python 解释器中的线程问题,但是实际上会让多线程程序运行速度比对应的单线程版本甚至是多进程版本更慢。
对于线程和进程的理解主要可以借助CPU计算的问题,这里放一个视频辅助理解:https://www.bilibili.com/video/BV1Wu41167dV
相关文章
- CentOS7基本环境搭建&开箱即用环境下载
- Allegro之测量时显示两种单位(mil & mm)
- 多模态理解与生成,西南交大&MSRA提出统一的"视频和语言预训练"模型:UniVL!
- XML&Xpath解析
- 沃趣科技创始人&CEO陈栋获评“2021杭州创业人物”
- Bed Bath & Beyond EDI 856提前发货通知
- ECCV2022 &CVPR2022论文速递2022.7.19!
- Python 线程&进程与协程
- 接口测试|HttpRunner模拟发送GET请求&自动生成测试报告
- 7 Papers & Radios | 纯注意力或许没那么有用;从量子场看深度学习
- 7 Papers & Radios | AI求解薛定谔方程;陶大程等深度学习理论进展综述
- heartbeat amp DDOS攻击资源扫描.c
- AMP MySQL升级提升数据库性能的必要之举(amp mysql升级)