操作系统【OS】线程的分类

        

  • 线程的实现分为两类 = 用户级线程(User-Level Thread, ULT) + 内核级线程(Kernel-Level Thread, KLT)

 

ULT

KLT

组合模式

定义

由用户级线程库函数来完成整个线程的管理和调度【库函数负责】

线程对应的TCB放在OS里,线程的管理和调度由OS负责【OS负责】

内核支持的用户线程

模型

多对一模型(多个用户对应一个线程)

一对一模型(一个用户对应一个线程)

多对多模型

优点

  • TCB由用户级线程库函数维护,可用于不支持线程技术的OS
  • 无需用户态和内核态的切换,速度特别快
  • 某个内核线程发起系统调用被阻塞,不会影响到其他内核线程的运行
  • 内核能同时调度同一进程中的多个线程并行执行

 

缺点

  • 一个线程发起了系统调用而阻塞,那进程所包含的用户线程都不能执行了
  • 在多线程执行时,每个线程得到的时间片少,执行慢
  • 📢线程与线程之间不用内核切换,但是跨进程的话就需要内核参与
  • 同一进程的线程切换,需要从用户态转到核心态,系统开销大

 

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

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

相关文章

系统报错“由于找不到vcomp140.dll无法继续执行代码”的解决方案

在我们日常使用电脑的过程中,可能会遇到一些错误提示,其中之一就是“找不到vcomp140.dll”。这个错误可能让许多用户感到困扰,因为它可能影响到我们的电脑使用。那么,vcomp140.dll是什么意思?当我们遇到这个问题时&…

$GNGGA,传感器传输的数据解析

每一秒传输这一帧数据如下: $GNGGA,090022.000,3959.82136,N,11628.16507,E,1,06,3.5,21.4,M,0.0,M,,*4D $GNGLL,3959.82136,N,11628.16507,E,090022.000,A,A*4F $GPGSA,A,3,03,16,26,,,,,,,,,,4.1,3.5,2.1*32 $BDGSA,A,3,07,21,42,,,,,,,,,,4.1,3.5,2.1*21 $GPGSV…

22下半年下午题

声明:哔哩哔哩视频笔记 源地址 第一大题题目 第一大题解答 第一小问 根据0层数据流图来找,看数据流向和相应的处理模块匹配。并且这个第一问,肯定是能在说明中找到对应短语作为答案的。 第二小问 搞清楚具体存储数据的信息名字&#xff…

视频亮度太低了,如何调高

充足、均匀、稳定的光亮对于视频制作是至关重要的,在现实生活中,不可预见的天气变化和拍摄地方的阴暗常常给我们留下暗淡无光的视频片段。 如果你的视频太暗想知道如何使它变亮,且又不知道使用哪个工具,那你无需担心,因…

《低代码指南》——维格云和Airtable的比较

Airtable​ 什么是Airtable​ Airtable 是一个任务管理应用程序,它合并了电子表格、数据存储和模板,以帮助组织构建他们的工作流程。 适用于哪些企业/组织/人群​ 根据 Airtable 网站,该工具被超过 200,000 个组织的团队使用。 维格表与Airtable相比如何​ Airtable作为…

机器学习中参数优化调试方法

1 超参数优化 调参即超参数优化,是指从超参数空间中选择一组合适的超参数,以权衡好模型的偏差(bias)和方差(variance),从而提高模型效果及性能。常用的调参方法有: 人工手动调参 网格/随机搜索(Grid / Random Search) 贝叶斯优…

面试-Redis-缓存雪崩

问:什么是缓存雪崩 ? 答:缓存过期是指设置缓存时都采用了同一过期时间,导致缓存在莫一时刻同时失效,从而请求全部全部打到数据库中,导致数据库压力过大而挂机。 它与缓存击穿的区别是:缓存击穿是一个key…

01、MySQL-------性能优化

目录 一、影响性能的相关因素存储过程: 二、sql优化1>、Mysql系统架构2>、引擎区别: 3>、索引1、什么是索引?联合主键索引理解:索引长度理解:什么是慢查询? 1)、索引理解2)…

Rust 泛型

泛型 Generics泛型详解 使用泛型参数&#xff0c;有一个先决条件&#xff0c;必需在使用前对其进行声明&#xff1a; fn largest<T>(list: &[T]) -> T {该泛型函数的作用是从列表中找出最大的值&#xff0c;其中列表中的元素类型为 T。首先 largest<T> 对…

SpringBoot结合Druid实现SQL监控

1、前言 SpringBoot不用我多介绍了吧&#xff0c;目前后端最流行的框架。后端开发人员最基本的要求。 Druid数据库连接池&#xff0c;出自国内 ”java圣地" 阿里巴巴。 Druid是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统&#xff0c;旨在快速处理大规模…

CentOS 7.9 安装 MySQL 8 配置模板

1. 服务器主机 BIOS 关闭 NUMA 2. 系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core)&#xff1b;MySQL 8.0.22 3. 修改系统核心参数 # 编辑 /etc/sysctl.conf 文件&#xff0c;添加以下参数&#xff1a; fs.aio-max-nr524288 vm.swappiness0 net.ipv6.conf.all.di…

新年学新语言Go之五

一、前言 Go虽然不算是面向对象语言&#xff0c;但它支持面向对象一些特性&#xff0c;面向接口编程是Go一个很重要的特性&#xff0c;而Go的接口与Java的接口区别很大&#xff0c;Go的接口比较复杂&#xff0c;这里仅用一个最简单例子做介绍&#xff0c;复杂的我也还没学。 …

filebeat(8.9.0)采集日志到logstash,由logstash发送的es

filebeat采集日志到logstash&#xff0c;由logstash发送的es 下载并配置filebeat下载配置logback.xml logstash配置 下载并配置filebeat 下载 参考 配置 filebeat.inputs: - type: filestreamenabled: truepaths:# 日志文件目录- D:\modellog\elkdemo\*\*.logparsers:# 多…

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长&#xff0c;是一直对着不同的案例debug修改出来的&#xff0c;不建议学习。虽然提交成功了&#xff0c;但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…

分发糖果[困难]

优质博文&#xff1a;IT-BLOG-CN 一、题目 n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 【1】每个孩子至少分配到1个糖果。 【2】相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩…

浅谈 docker run 命令中的 -i -t 和 -d 选项

以 docker Ubuntu 镜像为例&#xff0c;ubuntu镜像启动时默认执行的命令是"/bin/bash"。 文章目录 不带任何选项带 -i 选项带 -i 和 -t 选项-d 选项 不带任何选项 rootubuntu20:~# docker run ubuntu:20.04 rootubuntu20:~# docker ps CONTAINER ID IMAGE …

操作系统【OS】进程的控制【进程的创建、终止、阻塞、唤醒】

定义和过程 对应事件 创建 允许一个进程创建另一个进程允许子进程继承父进程所拥有的资源创建进程的过程如下&#xff1a; 申请一个空白的 PCB&#xff0c;并向 PCB 中填写一些控制和管理进程的信息&#xff0c;比如进程的唯一标识等&#xff1b;为该进程分配运行时所必需的…

源码安装Openlava 4.0

安装需求 基本硬件配置建议&#xff1a;CPU 4核或以上&#xff08;LSF 没有最低 CPU 需求&#xff0c;此处只是建议&#xff09;内存 8G或以上&#xff08; 当没有作业在运行时&#xff0c; Linux x86-64 上集群中的 LSF 守护程序将使用大约 488 MB 内存。&#xff09;交换空…

DDOS攻击的有效防护方式有哪些?

DDoS攻击简介&#xff1a; DDoS攻击&#xff0c;即分布式拒绝服务攻击&#xff08;Distributed Denial of Service&#xff09;&#xff0c;是一种网络攻击&#xff0c;旨在通过向目标服务器发送大量恶意请求&#xff0c;使服务器资源耗尽&#xff0c;无法满足合法用户的需求&a…