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实现简单的TCP代理服务器
Oct 08 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
python实现websocket的客户端压力测试
Jun 25 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
Django中URL的参数传递的实现
Aug 04 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
如何用Python绘制3D柱形图
Sep 16 Python
Python 列表反转显示的四种方法
Nov 16 Python
Python基础之Socket通信原理
Apr 22 Python
Django使用echarts进行可视化展示的实践
Jun 10 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
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
javascript radio 联动效果
2009/03/04 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
Vue中props的详解
2019/05/16 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
Python Django使用forms来实现评论功能
2016/08/17 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
Java和Javasciprt的区别
2012/09/02 面试题
水产养殖学应届生求职信
2013/09/29 职场文书
综合实践活动方案
2014/02/14 职场文书
小学生秋游活动方案
2014/02/23 职场文书
关于召开会议的通知
2015/04/15 职场文书
学生会主席任命书
2015/09/21 职场文书
800字作文之大雪
2019/12/04 职场文书