python process_Python Process/Thread 概念整理

进程与线程 并发与并行

进程与线程

首先要理解的是,我们的软件都是运行在操作系统之上,操作系统再控制硬件,比如 处理器、内存、IO设备等。操作系统为了向上层应用程序提供 简单一致 的机制来控制复杂而又大相径庭的低级硬件设备 抽象出 进程 的概念。进程是比较重量级的操作系统资源,它拥有独立的内存空间,而在 现代操作系统中为了实现在一个进程中执行多种任务,因此实现了 线程。 一个 进程 可以由多个 线程组成,每个 线程 是一个执行单元,线程 运行在 进程 的上下文环境中,并共享 同样的代码和全局数据。

我们经常说的 多线程 就是指的 在一个进程内有多个线程在执行任务,在实际开发中,开发者写的代码其实都是在线程的环境中执行的,而在多线程开发中,经常涉及到 一些 线程安全的问题,简单的看下进程 和 线程占有的资源情况

简单的理解 线程安全 的问题:多线程程序在运行时候,可能会同时对一个变量进行操作,操作的时候,一般线程会将这个变量的值 copy 到 自身线程的巨变变量中,再进行操作,此时可能就会发生 读写时数据不同步(数据已经被其他线程操作了,自身线程操作时读取的值已经是旧的了)的问题。

并发与并行

进程 可以申请和拥有系统资源,进程是一个实体,程序的执行依赖于、主存(存放程序和程序处理的数据) CPU(执行代码) 等…(比如IO),而进程相当于一个环境,是控制这些操作系统硬件的实体,在操作系统中,一个系统上可以运行多个进程,运行的进程一般是多于运行它们的CPU 个数的, 所以通常一个CPU 可能需要运行多个进程任务,一个CPU 就像是一个工人,他一个时间节点只能做一件事情,所以 CPU 得频繁的在多个 进程中切换(上下文切换),这种现象就是并发执行。

并行执行的概念是指 多个程序在多个CPU上同时执行,“并行” 概念是 并发 概念的一个子集,我们可以编写一个 并行程序,但是如果没有足够的 CPU 来执行,那么最终就变成了并发执行

并发:同时有很多任务需要做,可以串行执行也可以并行执行

并行:可以同时(严格意义上的)做多个任务

作者:zhuoxiuwu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql技术内幕sampdb_MySQL技术内幕汇总

MySql技术内幕之MySQL入门(1)检查系统中是否已经安装了MySQLsudo netstat -tap | grep mysql若没有显示已安装结果,则没有安装。否则表示已经安装。sudo apt-get install mysql-server mysql-client安装过程中会让输入密码,记得把密码记住。登录mysql -u…

lrtemplate如何导入pr_PR模板使用套路讲解 视频剪辑教程

​pr模板在使用的时候需要注意的事项以及如何正确操作https://www.zhihu.com/video/1237765482302226432pr模板在使用的时候需要【注意的事项】1、下载的模板必须解压后使用2、下载模板的时候网站上页面都会有介绍模版所支持的版本3、弹出不同版本的提示窗口,点击确…

linux没有usr目录_了解linux系统目录,sys,tmp,usr,var!

linux小白到大神的成长之路:了解linux系统目录,sys,tmp,usr,var!本经验由宗龙龙原创,全文共600多字,阅读需要14分钟,如果文中存在错误,还请大家多多指点,我会积极改进的!​这篇文章将…

effective python目录_Effective python(七):协作开发

一,文档字符串1, 在函数,类,模块(顶端编写)下使用三个"""括起来内容即可2, 文档被关联到__doc__属性中,应尽量充分的描述其用法,作用,异常等等二,使用包来…

实用卷积神经网络 运用python pdf_解析卷积神经网络—深度学习实践手册 中文pdf高清版...

解析卷积神经网络—深度学习实践手册从实用角度着重解析了深度学习中的一类神经网络模型——卷积神经网络,向读者剖析了卷积神经网络的基本部件与工作机理,更重要的是系统性的介绍了深度卷积神经网络在实践应用方面的细节配置与工程经验。笔者希望本书“…

mysql语言和php语言_MySQL如何与PHP编程语言一起使用?

MySQL与PERL,C,C ,JAVA和PHP等各种编程语言结合使用时效果很好。在这些语言中,PHP因其Web应用程序开发功能而成为最受欢迎的语言。PHP提供了各种功能来访问MySQL数据库并处理MySQL数据库内部的数据记录。您将需要以与调用其他任何…

svd奇异值分解_奇异值分解SVD

点击上方蓝字关注我们奇异值分解(SVD)在计算机视觉中有着广泛的应用,如数据降维、推荐系统、自然语言处理等。本文是介绍SVD的数学计算过程,并从SVD的性质说明其应用的原理。01特征值与特征向量奇异值分解(SVD)与特征分解类似,是将矩阵分解为…

python turtle画房子详细解释_[宜配屋]听图阁

我就废话不多说了,直接上代码吧!import turtletturtle.Turtle()turtle.Turtle().screen.delay(0)tleftturtle.Turtle()#第一部分t.penup()t.goto(0,0)t.pendown()t.left(20)t.forward(110)t.left(25)t.forward(40)t.left(100)t.circle(180,20)t.right(12…

简易航空订票系统_四川航空APP全新升级改版,三大亮点提升订票体验

成都2015年10月23日电 /美通社/ -- 四川航空发布手机APP全新的3.0版本,不仅针对界面风格做了全新改变,在iOS9、安卓系统上的展示更加炫丽;而且在机票预订、航班动态、特价机票方面均做了大幅升级,会员服务也更加贴心。对于有机票需…

python可视化分析网易云音乐评论_网易云音乐热门评论api分析

网上有现成的例子我就扒过来了!!title: 网易云评论api分析date: 2018-12-24 20:54:46tags: [python]网易云音乐是个好地方,里面各个都是人才,特别是评论区……所以我就想把评论爬下来看看,下面记录一下分析api的过程与…

python 功能化模块_【软件测试教程】Python模块化以及内置模块的使用

一:什么是模块模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。二:模块类型1:自定义模块由编程人员自己写的模块。自定义模块时要注意命名&#xff0…

spring 上下文_一次性教你彻底理解 Spring容器和应用上下文!

作者:陈本布衣www.cnblogs.com/chenbenbuyi有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期。业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助…

oracle plsql 到处dbf_plsql 导出oracle数据库

plsql 导出数据库有两个问题,一个是只导出结构,一个是导出表结构加数据这样的,首先人家让我导成sql语句这不是简单,首先打开PLSQL一、导出结构1、然后tools->Export User Objects..然后出来一片空白2、要选择哪个User3、上面会…

python爬取百度百科搜索结果_用Python抓取百度搜索结果,python,爬取,的

前言前几天爬的今天整理了一下发现就两个需要注意的点一是记得用带cookie的方式去访问,也就是实例化requests.session()二是转化一下爬取到的url,访问爬到的url得到返回的Location值,该值便是真实的地址(如果你不是要爬url当我没说)知道了这两…

spring aop设计模式_Spring框架中设计模式的运用

设计模式大家可能随口就能说出总共有23种,但是具体怎么用,或者在常用的组建中有哪些体现,这时候不一定说的上来了。接下来几篇文章,我们一起深入理解。首先我们一起了解下常用的组建中是怎么运用的,比如 JDK、Sring、M…

使用yum命令安装mysql_Linux Centos 下使用yum 命令安装mysql实现步骤

linux centos 下使用yum 命令安装mysql实现步骤1. 查看服务器中有没有安装过mysql1. 查看有没有安装包:yum list mysql*#移除已经安装的mysqlyum remove mysql mysql-server mysql-libs compat-mysql51rm -rf /var/lib/mysqlrm /etc/my.cnf2. 查看是否还有mysql软件:rpm -qa|gr…

sql unicode转中文_SELECT语句《SQL必知必会》

数据库中有哪些数据类型?数据库中最常用对数据类型有三种:Text(文本)、Number(数字)和 Date/Time。文本类型:即字符串,如“nameasdas”数字类型:十进制数字,如…

mpython 直接访问_如何从python代码中直接访问Android的Service

在Kivy中,通过pyjnius扩展可以间接调用Java代码,而pyjnius利用的是Java的反射机制。但是在Python对象和Java对象中转来转去总让人感觉到十分别扭。好在android提供了binder这个进程间通信的功能,Java中的Service也是基于Binder的C代码封装来实…

python中attr_python中hasattr()、getattr()、setattr()函数的使用

引言:在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr()、getattr()、setattr()函数的使用也一并学习…

python前n项和存为一个数组_在Python中存储多个数组

我正在编写一个程序来模拟像Gallup或Rasmussen这样的公司每天发布的实际投票数据:www.gallup.com和www.rassmussenreports.com我正在使用强力方法,计算机生成一些随机的每日轮询数据,然后计算三天平均值,以查看随机数据的平均值是否与民意测验数字相匹配. (大多数公…