python中线程和进程有何区别


Posted in Python onJune 17, 2020

引入进程和线程的概念及区别

threading模块提供的类:  

Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。

1.什么是进程

计算机程序只不过是磁盘中可执行的二进制(或其他类型)的数据。它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期。

进程(有时被称为重量级进程)是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈及其它记录其运行轨迹的辅助数据。

操作系统管理在其上运行的所有进程,并为这些进程公平的分配时间,进程也可以通过fork和spawn操作来完成其它的任务。

不过各个进程有自己的内存空间、数据栈等,所以只能使用进程间通讯,而不能直接共享信息。

2.线程的基本概念

线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

 3、线程和进程的关系以及区别?

进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

(3)处理机分给线程,即真正在处理机上运行的是线程

(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体.

进程与线程的区别:

(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行

(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.

(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

知识点补充:

  • 进程是资源分配的单位
  • 线程是操作系统调度的单位
  • 协程,又称微线程,纤程,协程的切换只是单纯的操作CPU的上下文,资源很小,效率高
  • 进程切换需要的资源很最大,效率很低
  • 一个程序至少有一个进程,一个进程至少有一个线程
  • 线程执行开销小,但不利于资源的管理和保护;而进程正相反

到此这篇关于python中线程和进程有何区别的文章就介绍到这了,更多相关python中线程和进程的区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python的urllib库提交WEB表单
Feb 24 Python
Python中的ctime()方法使用教程
May 22 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python标准库shutil用法实例详解
Aug 13 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
Python 中@property的用法详解
Jan 15 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 #Python
python里的单引号和双引号的有什么作用
Jun 17 #Python
没编程基础可以学python吗
Jun 17 #Python
keras实现图像预处理并生成一个generator的案例
Jun 17 #Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 #Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 #Python
Keras之fit_generator与train_on_batch用法
Jun 17 #Python
You might like
PHP二维数组排序简单实现方法
2016/02/14 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
Jquery实现的角色左右选择特效
2014/05/21 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
2014/09/03 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python制作数据导入导出工具
2015/07/31 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python中取绝对值简单方法总结
2020/07/24 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
英国电气世界:Electrical World
2019/09/08 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
十八大报告观后感
2014/01/28 职场文书
销售求职信范文
2014/05/26 职场文书
军训拉歌口号
2014/06/13 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
Nginx配置根据url参数重定向
2022/04/11 Servers