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持久性管理pickle模块详细介绍
Feb 18 Python
python实现带错误处理功能的远程文件读取方法
Apr 29 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Selenium定位元素操作示例
Aug 10 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
Python面向对象程序设计示例小结
Jan 30 Python
Python中pymysql 模块的使用详解
Aug 12 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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 图片文件上传实现代码
2010/12/29 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
业务员的岗位职责
2014/03/15 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
班级旅游计划书
2014/05/03 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
小学数学教学反思范文
2016/02/16 职场文书
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
七个非常实用的Python工具包总结
2021/06/15 Python