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 os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
git进行版本控制心得详谈
Dec 10 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
谈谈Python中的while循环语句
Mar 10 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
Python中os模块功能与用法详解
Feb 26 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
python数据类型强制转换实例详解
Jun 22 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
加速XP搜索功能堪比vista
2007/03/22 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php 猴子摘桃的算法
2017/06/20 PHP
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
vue通过video.js解决m3u8视频播放格式的方法
2019/07/30 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
python实现定时发送qq消息
2019/01/18 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
python实现按日期归档文件
2021/01/30 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
客房主管岗位职责
2013/12/09 职场文书
火车的故事教学反思
2014/02/11 职场文书
演讲稿格式范文
2014/05/19 职场文书
校运动会广播稿300字
2014/10/07 职场文书
离婚协议书格式
2015/01/26 职场文书
中学教师教学工作总结
2015/08/13 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
python爬取豆瓣电影TOP250数据
2021/05/23 Python
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android