首页 > 系统相关 >线程的引入以及进程和线程的区别

线程的引入以及进程和线程的区别

时间:2024-03-19 17:00:14浏览次数:26  
标签:并发 进程 线程 引入 PCB OS 资源

线程的引入:在OS中引入线程,为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
进程的两个基本属性:进程是一个可拥有资源的独立单位;进程同时也是一个可独立调度和分派的基本单位。每个进程在系统中均有唯一的PCB,系统可根据PCB来感知进程的存在,也可以根据PCB中的信息对进程进行调度等。
—>线程与进程的比较:线程具有传统进程所具有的很多特征,因此又称为轻型进程,相应的,把传统进程称为重型进程。
1,调度的基本单位:在引入线程的OS中,把线程作为调度和分派的基本单位,是能叙利亚的基本单位,当线程切换时,仅需要保存和设置少量寄存器的内容,切换代价远低于进程。在同一进程中,线程切换不会引起进程切换。
2.并发性:进程之间可以并发执行,而在一个进程中的多个线程之间也可以并发执行,甚至还允许一个进程中所有的线程都能并发执行,不同进程中的线程也能并发执行,师OS具有更好的并发性,提高了资源利用率。
3。拥有资源:进程可以拥有资源,并且可作为系统中拥有资源的一个基本单位,而线程可以说几乎不拥有资源,仅有的一点资源也是确保自身可独立运行,例如在每个线程中都有线程控制快(TCB),线程允许多个线程共享他们共属的进程所拥有的资源,属于同一进程的线程都具有相同的地址空间,线程也可访问其所属进程所拥有的资源。
4.独立性:同一进程中的不同线程之间的独立性,要比不同进程之间的独立性低的多.
5.系统开销:在创建进程时,系统要为它分配PCB和其他资源,OS为此付出的开销大雨线程创建时所付出的。
6.支持多处理机系统:对于多线程进程,其可以将一个进程中的多个线程分配到多个处理机上并行运行。

标签:并发,进程,线程,引入,PCB,OS,资源
From: https://blog.csdn.net/m0_74762905/article/details/136847359

相关文章

  • 多进程并发 v.s.多线程并发
    多进程并发v.s.多线程并发优缺点多进程的优点:独立性:每个进程都有独立的内存空间,相互之间不会影响,数据隔离性好。稳定性:一个进程崩溃通常不会影响其他进程,提高了系统的稳定性。简单的错误处理:进程之间的错误处理相对简单,一个进程崩溃通常只需要重启该进程即可。适用于CP......
  • 鸿蒙Arkts引入资源
     @Entry@Componentstructdemo{@StylesimgStyle(){.width(80).height(80)}build(){Row(){Column({space:20}){//方式一:使用$提示符选择第一个从app.media选择图片,不需要图片后缀名,图片资源放在resources>base>medi......
  • c++线程池(二)——线程池优化
    文章目录概要整体架构流程技术细节小结概要增加扇入扇出:优化:子线程维护自己的本地队列分析:目前文章《线程池一》介绍了一个简单的线程池,存在多个线程同时访问一个任务队列Task,出现抢锁的情况,这样会存在一定的性能消耗,会导致有些没抢到任务的线程没事做,造成资源浪......
  • 多线程(一)
    1、线程与进程进程:一个正在执行的程序,是资源分配的最小单位1)进程中的事情需要按照一定的顺序逐个执行,那么如何让一个进程中的一些事情同时执行?2)进程出现了很多弊端:一是由于进程是资源拥有者,创建、撤销与切换存在较大的时空开销,因此需要引入轻量级进程;二是由于多处理器(SMP)出现,可......
  • Linux系统(四)- 进程初识 | 环境变量 | 进程地址空间
    ~~~~前言冯诺依曼体系结构(重要)总览CPU工作方式什么是指令集?CPU为什么只和内存打交道(数据交换)?木桶效应:在数据层面的结论程序运行为什么要加载到内存?进一步理解计算机体系结构操作系统(operatorsystem)(重要)什么是操作系统为什么要有操作系统操作系统怎样进行管理的先描述......
  • JAVA多线程常用方法
    文章目录1.常用方法总结2.run和start3.sleep4.yield5.join6.interrupt6.1相关方法6.2打断park线程6.3过时方法7.守护线程8.线程状态8.1操作系统中8.2Java中1.常用方法总结Thread类的常用API如下:方法说明publicvoidstart()启动一个新线程,Java虚拟......
  • Linux进程通信补充——System V通信
    三、SystemV进程通信​SystemV是一个单独设计的内核模块;​这套标准的设计不符合Linux下一切皆文件的思想,尽管隶属于文件部分,但是已经是一个独立的模块,并且shmid与文件描述符之间的兼容性做的并不好,网络通信使用的是文件的接口,所以SystemV标准慢慢地边缘化了,很难被整......
  • Java中的多线程是如何实现的?
    ​​​​​​继承Thread类:通过继承Java的Thread类并重写其run()方法,可以创建一个线程。run()方法包含了线程要执行的代码。创建Thread子类的实例,并调用其start()方法来启动线程。start()方法会导致线程开始执行,自动调用run()方法。注意:Java不支持多重继承,因此如果类已经继承了......
  • 多线程-初阶
    1.认识线程(Thread)1.1概念1)线程是什么一个线程就是一个"执行流".每个线程之间都可以按照顺讯执行自己的代码.多个线程之间"同时"执行着多份代码.还是回到我们之前的银行的例子中。之前我们主要描述的是个人业务,即一个人完全处理自己的业务。我们进一步设想如......
  • Spring高级特性@Enable*注解的应用之:计划任务和多线程
     Spring高级特性之三:@Enable*注解的工作原理和@Enable*注解的应用之:声明式事务@EnableTransactionManagement详解中对于@EnableXXX相关应用已有总结:1)@EnableXXX启动XXX应用,比如@EnableTransactionManagement开启声明式事务管理, 2)具体被操作管理执行对象使用注解@......