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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python的Flask框架与数据库连接的教程
Apr 20 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Django自定义manage命令实例代码
Feb 11 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python实现简单淘宝秒杀功能
May 03 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
在keras中获取某一层上的feature map实例
Jan 24 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
Django数据统计功能count()的使用
Nov 30 Python
详解Python中__new__方法的作用
Mar 31 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利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
python selenium操作cookie的实现
2020/03/18 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
Python map及filter函数使用方法解析
2020/08/06 Python
浅析Python 责任链设计模式
2020/09/11 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
国税会议欢迎词
2014/01/16 职场文书
求职简历的自我评价
2014/01/31 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
班级活动总结格式
2014/08/30 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
家长会感言
2015/08/01 职场文书