当前位置: 首页 > news >正文

logo设计在线生成免费标小智seo网站编辑优化招聘

logo设计在线生成免费标小智,seo网站编辑优化招聘,科技强国形势与政策论文,搭建微信小程序进程和线程的区别和联系1. 认识线程2. 进程和线程的关系3. 进程和线程的区别4. 线程共享了进程哪些资源1. 上下文切换2. 线程共享了进程哪些资源1.代码区2. 数据区3. 堆区1. 认识线程 线程是进程的一个实体,它被包含在进程中,一个进程至少包含一个线程,一个进程也可以包含多个… 进程和线程的区别和联系1. 认识线程2. 进程和线程的关系3. 进程和线程的区别4. 线程共享了进程哪些资源1. 上下文切换2. 线程共享了进程哪些资源1.代码区2. 数据区3. 堆区1. 认识线程 线程是进程的一个实体,它被包含在进程中,一个进程至少包含一个线程,一个进程也可以包含多个线程线程是CPU调度和分派的基本单位他是比进程更小的能独立运行的基本单位线程自己基本上不拥有系统资源只拥有一点在运行中必不可少的资源(如程序计数器一组寄存器和栈)一个线程可以创建和撤销另一个线程. 网络上有一个图片是这样描述进程与线程的: 为什么会有线程的存在: 早在80年代,由于进程的创建和销毁以及切换存在较大的空间开销,因此人们急需一种轻型的进程技术来减少资源的开销.于是便线程的概念便但诞生了.线程被设计成进程的一个执行路径,同一个进程中的线程共享进程资源.因此系统对于线程的调度远远小于进程. 虽然说线程之间的切换开销小,但是由于多个线程共享同一个进程的资源,所以如果一个线程崩溃,那么就可能导致整个进程被系统抹杀.但是进程不用担心,每个进程都有独立的代码和数据空间程序上下文,即使这个进程崩了也不会影响到其他的进程,就类似于我QQ崩了跟我微信有什么关系. 大家通过上述的图片也可以看见,一个进程中包含多个线程,通俗点理解的话就是,我的B站,可以一边看视频,一边投币,顺便再点个收藏这些都是由不同的线程来完成的任务.所以这里就体现了进程和线程的包含关系. 2. 进程和线程的关系 (1)一个线程只能属于一个进程而一个进程可以有多个线程但至少有一个线程。 (2)资源分配给进程同一进程的所有线程共享该进程的所有资源。 (3)线程在执行过程中需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。 (4)处理机分给线程即真正在处理机上运行的是线程。 (5)线程是指进程内的一个执行单元也是进程内的可调度实体。 3. 进程和线程的区别 本质区别: 进程是操作系统进行资源分配的基本单位,线程是独立调度和分派的基本单位。包含关系: 如果一个进程内有多个线程,则执行过程并不是一条直线,而是多条线(线程)共同完成的.线程是进程的一部分,所以线程也被称为轻量级进程或轻权进程.资源开销: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销:线程可以看作轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小.进程和线程的创建和销毁: 假如我要创建一个进程,我先要遍历我的内存资源找到一块合适的内存再分配给它,当我要销毁一个进程时,还是要先遍历我的内存资源,找到我的进程才能对其进行销毁.但是如果是创建一个线程,我们可以认为该进程是一个酒店,当我想创建一个线程时,直接开一个房间就好了,销毁线程时直接退房,此时可以看出,进程的创建和销毁在资源分配上浪费了很多时间,但是线程的创建和销毁则不需要那么麻烦.内存分配: 同一个进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的.影响关系: 一个进程崩溃后,在保护模式下并不会对其他进程产生影响,但是一个线程崩溃,可能会导致包含该线程的整个进程都直接死掉.所以多进程要比多线程健壮..操纵者不同进程的操纵者一般是操作系统线程的操纵者一般是编程人员。执行过程每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行必须依存在应用程序中由应用程序提供多个线程执行控制两者均可并发执行. 4. 线程共享了进程哪些资源 再了解该知识点时,我们先了解一下什么是上下文切换. 1. 上下文切换 这里小鱼画了一个简易的进程和线程的关系图 为了便于更好的理解我给大家优化一下上述的图: 我们可以将整个进程看成一个工厂,为生产活动体提供了设计图,场地,流水线(线程)等生产要素,而线程呢?我们就可以理解为是这个工厂的一个个流水线,流水线本身会有一个操作台,具体的零件在这里被生产,由于生产线需要由工人来操作才能开始执行,但是由于这个工人并不知道该零件加工到了哪一部分,所以需要通过查阅该流水线的生产记录才可以弄清这个流水线的零件加工到那种程度,才能为接下来的后续加工提供保障,并且,当工人停止这次流水线的执行之后,也需要记录这次的生产进度,以备下次读取,这些生产进度可以理解为上下文,读生产记录和写生产记录的过程称为上下文切换. 2. 线程共享了进程哪些资源 我们知道了进程和线程的本质区别是: 进程是操作系统进行资源分配的基本单位,线程是独立调度和分派的基本单位.线程之间共享着进程的资源. 但是我们真的理解这句话的含义吗? 下面就为您解答: 线程私有资源 函数运行时的信息保存在栈帧中栈帧中保存了函数的返回值、调用其它函数的参数、该函数使用的局部变量以及该函数使用的寄存器信息如图所示假设函数A调用函数B 此外CPU 执行指令的信息保存在一个叫做程序计数器的寄存器中通过这个寄存器我们就知道接下来要执行哪一条指令。由于操作系统随时可以暂停线程的运行因此我们保存以及恢复程序计数器中的值就能知道线程是从哪里暂停的以及该从哪里继续运行了。 由于线程运行的本质就是函数运行函数运行时信息是保存在栈帧中的因此每个线程都有自己独立的、私有的栈区。 同时函数运行时需要额外的寄存器来保存一些信息像部分局部变量之类。这些寄存器也是线程私有的一个线程不可能访问到另一个线程的这类寄存器信息。 从上面的讨论中我们知道到目前为止,所属线程的栈区、程序计数器、栈指针以及函数运行使用的寄存器是线程私有的. 以上这些信息有一个统一的名字就是线程上下文thread context。 我们也说过操作系统调度线程需要随时中断线程的运行并且需要线程被暂停后可以继续运行操作系统之所以能实现这一点依靠的就是线程上下文信息。 此时我们已经知道了哪些资源是线程私有的。除此之外剩下的都是线程间共享资源。那么剩下的还有什么呢还有图中的这些。 这其实就是进程地址空间的样子也就是说线程共享进程地址空间中除线程上下文信息中的所有内容意思就是说线程可以直接读取这些内容。 接下来我们分别来看一下这些区域。 1.代码区 进程地址空间中的代码区这里保存的是什么呢从名字中有的同学可能已经猜到了没错这里保存的就是我们写的代码更准确的是编译后的可执行机器指令。 那么这些机器指令又是从哪里来的呢答案是从可执行文件中加载到内存的可执行程序中的代码区就是用来初始化进程地址空间中的代码区的。 线程之间共享代码区这就意味着程序中的任何一个函数都可以放到线程中去执行不存在某个函数只能被特定线程执行的情况。 2. 数据区 进程地址空间中的数据区这里存放的就是所谓的全局变量/成员变量。 什么是成员变量?(在方法外定义的遍历就是成员变量) 3. 堆区 堆区是程序员比较熟悉的我们在 java中new 出来的数据就存放在这个区域很显然只要知道变量的地址也就是引用任何一个线程都可以访问引用指向的数据因此堆区也是线程共享的属于进程的资源。
http://www.w-s-a.com/news/4059/

相关文章:

  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章
  • 无锡网站设计厂家一建十个专业含金量排名
  • 网站刷链接怎么做成都高度网站技术建设公司
  • flash网站模板怎么用xml网站地图生成
  • 英文网站优化群晖wordpress中文
  • saas建站平台源码济南品牌网站建设公司
  • 网站建设一般是用哪个软件网站百度
  • 企业建站的作用是什么南宁公司网站开发
  • 厦门网站建设及维护门户网站开发视频教学
  • 可以做兼职的网站有哪些自动点击器永久免费版
  • 建购物网站怎么建呀网站怎么做中英文交互
  • 网站建设费用计入无形资产做网站用的主机
  • 佛山企业网站建设平台沈阳网站建设培训班
  • 河南企业网站优化外包网站怎么做来流量
  • 网站建设的参考文献网站设计网页的优缺点
  • WordPress多站點支付插件内江市网站建设培训
  • 做做网站已更新动漫制作专业需要学什么
  • dfv印花图案设计网站网站建设应该应聘什么岗位
  • 网站后台管理系统模板下载专业网站推广的公司哪家好
  • 克拉玛依市建设局网站网页设计板式重构
  • 网站新闻专题怎么做湖南营销型网站建设 要上磐石网络
  • 阿里云发布网站成都轨迹公布
  • php网站源码架构谷歌站群系统
  • 潮州网站seowordpress 调用置顶文章
  • 做带会员后台的网站用什么软件旅游网站建设资金请示
  • 商品网站怎么做wordpress 表情拉长
  • 商城网站设计费用网络公司怎样推广网站
  • 视频公司的网站设计工图网