首页 > 其他分享 >线程篇--线程的特点

线程篇--线程的特点

时间:2023-08-30 14:00:34浏览次数:30  
标签:操作系统 -- 调度 特点 线程 内核 进程 CPU

1. 线程是轻量级进程(light-weight process),也有PCB,创建线程使⽤的底层函数和进程⼀样,都是clone; 2. 从内核⾥看进程和线程是⼀样的,都有各⾃不同的PCB; 3. 进程可以蜕变成线程; 4. 在linux下,线程最是⼩的执⾏单位;进程是最⼩的分配资源单位。 实际上,⽆论是创建进程的fork,还是创建线程的pthread_create,底层实现都是调⽤同⼀个内核函数 clone 。 1. 如果复制对⽅的地址空间,那么就产出⼀个“进程”; 2. 如果共享对⽅的地址空间,就产⽣⼀个“线程”。 Linux内核是不区分进程和线程的, 只在⽤户层⾯上进⾏区分。所以,线程所有操作函数 pthread_* 是库函数,⽽⾮ 系统调⽤。 三种线程的实现 (1)⽤户线程 ⽤户空间实现的线程,由基于⽤户态的线程库管理 优点: 1. 管理不需要内核直接参与,因此可⽤于不⽀持线程技术的操作系统; 2. ⽤户线程切换由线程库调度,不需要⽤户态与内核态之间转换。 缺点: 1. 由于不由操作系统调度,⼀旦⽤户线程发起系统调⽤⽽阻塞,那么此进程下⽤户线程都⽆法运⾏; 2. ⼀旦某个⽤户线程正在运⾏,只有当其交出CPU执⾏权,其他⽤户线程才可以运⾏,⽆法被打断,因为只有操作 系统才有权限打断运⾏,但是操作系统不直接参与调度; 3. ⽤户线程操作系统⽆法感知,CPU资源是直接分配给线程所在的进程,因此分到具体⽤户线程的时间⽚就较短 了。,其TCB线程控制块⽆法被操作系统所感知,因此⽤户线程的创建、终⽌、同步、调度等都不是由操作系统 直接参与。 (2)内核线程: 由操作系统管理、调度,其TCB是存放在内核中。⼀般由操作系统事先创建内核线程集(类似于线程池),数量有 限。 优点: 1. 当⼀个内核线程发起系统调⽤阻塞时不会影响其它内核线程的执⾏; 2. 操作系统将CPU资源直接分配给内核线程,更多CPU时间。 缺点: 1. 需要由内核来维护内核线程的上下⽂信息及运⾏状态等,占⽤内核资源; 2. 内核线程创建、终⽌、切换都是在内核中进⾏,开销⽐较⼤。 (3)轻量级线程 LWP:内核⽀持的⽤户线程,像普通进程⼀样被调度,其类似于进程中的执⾏线程。 每个LWP都需要⼀个内核线程的⽀持(CPU资源分配、调度),实际上⽤户线程是运⾏在LWP上的。 LWP:(用户级线程和内核级线程之间的中间层)

标签:操作系统,--,调度,特点,线程,内核,进程,CPU
From: https://www.cnblogs.com/workformyselfandworld/p/17667034.html

相关文章

  • BOSHIDA DC电源模块在仪器设备中使用的突出表现
    BOSHIDADC电源模块在仪器设备中使用的突出表现DC电源模块是一种广泛应用于各种电子设备中的电源设备,它的最显著特点就是可以将电源直接转换为直流电,而且可以根据需要进行稳定地输出,这使得它在很多领域都有着广泛的应用。在仪器设备中,DC电源模块的使用具有以下几个突出的表现:......
  • SpringBoot使用protobuf格式的接口方式
    建立SpringBoot项目,pom.xml内容如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="......
  • 断言Assert.assertEquals(sourceCollection.get(0).getDemoValue(),1);
    Assert.assertEquals(sourceCollection.get(0).getDemoValue(),1);这段代码的作用是验证集合中第一个元素的demoValue属性是否等于预期的值1。如果相等,就没有问题;如果不相等,会抛出异常,表明测试失败或代码出现了问题。......
  • springboot 使用RestTemplate调用get api,传入参数
    getapi:@ResponseBody@ResponseStatus(HttpStatus.OK)@GetMapping(value="/checkGetApi")@ApiOperation(value="checkgetapimethod")publicJSONObjectcheckGetApi(IntegeruserName){JSONObjectresult=......
  • c#.net 支持 超大上G,多附件上传
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • Maven 是什么?有什么用?
    Maven是一个项目管理工具,它包含了一个项目对象模型(POM:ProjectObjectModel),一组标准集合。由于Maven使用标准目录布局和默认构建生命周期,开发团队几乎可以立即自动化项目的构建基础设施。在多个开发团队环境的情况下,Maven可以在很短的时间内按照标准设置工作方式。Maven之......
  • RISC-V学习1.0
    Membership–RISC-VInternational(riscv.org) RISC-VChina–RISC-VInternational(riscv.org)tommythorn/yarvi:YetAnotherRISC-VImplementation(github.com)alu.v//-----------------------------------------------------------------------////Apur......
  • 微信聊天记录删除恢复导出工具(文字/语音/图片/视频/文件/表情包)
    微信的聊天记录加密保存在电脑中,有时我们想将自己微信中的聊天记录导出来,但微信软件并不提供该功能。此软件可将自己电脑版微信中的聊天内容批量导出来,方便备份,后期不登录也可方便快速查阅。它还能够尝试恢复之前删除过的好友和聊天对话,不小心删除的聊天记录也会显示出来。下......
  • 手机版 - imessage信息群发,苹果imessages短信,imessages推信,苹果手机推信,苹果imess
    Apple公司全线在macos与ios两个操作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与AppleID绑定,同时也与使用这AppleID的手机号码绑定,这样的漏洞自然给无孔不入的群发垃圾信息商们提供了后门。这样iPhone的iMessa......
  • 1-JAVA-面向对象程序设计概论-笔记整理
    学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人JAVA-面向对象程序设计概论-笔记整理内容提要结构化程序设计方法面向对象技术及UML简介面向对象基本概念面......