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中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Django 前后台的数据传递的方法
Aug 08 Python
python实现雨滴下落到地面效果
Jun 21 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
基于python的socket实现单机五子棋到双人对战
Mar 24 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
python图形用户接口实例详解
Dec 16 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
strstr()的简单实现
2013/09/26 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
自荐信不宜过于夸大
2013/11/06 职场文书
考博专家推荐信模板
2013/12/02 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
在人间读书笔记
2015/06/30 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python