线程的两种实现方式

       线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT)

1. 内核支持线程

        顾名思义,内核支持线程即为在内核支持下的那些线程,它们的创建,阻塞,撤销和切换等,都是在内核空间中进行的。

        假如系统中设置的是内核支持线程,则调度便是以线程为单位进行的。

该线程实现方式的优点:

(1)在多线程处理器系统中,内核能够同时调度同一进程中的多个线程并行执行。

(2)如果一个进程中的线程阻塞了,内核可以调用该进程下的其他线程占用处理器,也可调用其他进程的线程。

(3)内核支持线程具有最小的数据结构和堆栈,线程的切换比较快,开销小。

(4)内核本身也可以采用多线程技术,可以提高线程的执行速度和效率。

该线程实现方式的缺点:

        对于用户的线程切换而言,其模式切换的开销较大,在同一进程内,从一个线程切换到另一个线程时,需要从用户态转到内核态进行,这是因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。

2. 用户级线程

        用户级线程实在用户空间中实现的。对线程的创建,撤销,同步与通信等,都无需内核的支持,即用户级线程与内核无关。在一个系统中的用户级线程的数目可以到达数百个乃至数千个。

        对于设置了用户级线程的系统,其调度仍是以进程为单位进行的。

        在进行跨进程调度时,用户级线程需要内核支持。

        该线程实现方式的优点:

(1)线程的切换无需转换到内核空间,从而节省了模式切换的开销。

(2)调度算法可以是线程专用的。

(3)用户级线程的实现与OS平台无关,因为对于线程管理的代码是属于用户程序的一部分,所有的应用程序都可以对之进行共享。

        该线程实现方式的缺点:

(1)系统阻塞调用问题。当线程执行一个系统调用时,不仅该线程被阻塞,该进程的所有线程都会被阻塞。而在内核支持线程中,则该进程中的其他线程仍然可以运行。

(2)在单纯的用户级线程实现方式中,多线程应用不能利用多处理机进行多重处理的优点,内核每次分配给一个进程的仅有一个CPU,因此,进程中仅有一个线程能执行,在该线程放弃CPU之前,其他线程只能等待。

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

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

相关文章

vue3基础学习(上) [简单标签] (vscode)

目录 1. Vue简介 2. 创建Vue应用 2.1 下载JS文件 2.2 引用JS文件 2.3 调用Vue方法​编辑 2.4 运行一下试试: 2.5 代码如下 3.模块化开发模式 3.1 Live Server插件 3.2 运行 4. 常用的标签 4.1 reactive 4.1.1 运行结果 4.1.2 代码: 4.2 ref 4.2.1 运行结果 4.2.2…

自定义分区器-基础

什么是分区 在 Spark 里,弹性分布式数据集(RDD)是核心的数据抽象,它是不可变的、可分区的、里面的元素并行计算的集合。 在 Spark 中,分区是指将数据集按照一定的规则划分成多个较小的子集,每个子集可以独立…

深入解析HTTP协议演进:从1.0到3.0的全面对比

HTTP协议作为互联网的基础协议,经历了多个版本的迭代演进。本文将详细解析HTTP 1.0、HTTP 1.1、HTTP/2和HTTP/3的核心特性与区别,帮助开发者深入理解网络协议的发展脉络。 一、HTTP 1.0:互联网的奠基者 核心特点: 短连接模式&am…

基于windows环境Oracle主备切换之后OGG同步进程恢复

基于windows环境Oracle主备切换之后OGG同步进程恢复 场景:db1是主库,db2是备库,ogg从db2备库抽取数据同步到目标数据库 db1 - db2(ADG) – ogg – targetdb 场景:db2是主库,db1是备库,ogg从db1备库抽取数…

微服务,服务粒度多少合适

项目服务化好处 复用性,消除代码拷贝专注性,防止复杂性扩散解耦合,消除公共库耦合高质量,SQL稳定性有保障易扩展,消除数据库解耦合高效率,调用方研发效率提升 微服务拆分实现策略 统一服务层一个子业务一…

【工奥阀门科技有限公司】签约智橙PLM

近日,工奥阀门科技有限公司正式签约了智橙泵阀行业版PLM。 忠于质量,臻于服务,精于研发 工奥阀门科技有限公司(以下简称工奥阀门)坐落于浙江永嘉,是一家集设计、开发、生产、销售、安装、服务为一体的阀门…

2025-5-15Vue3快速上手

1、setup和选项式API之间的关系 (1)vue2中的data,methods可以与vue3的setup共存 (2)vue2中的data可以用this读取setup中的数据,但是反过来不行,因为setup中的this是undefined (3)不建议vue2和vue3的语法混用…

基于智能推荐的就业平台的设计与实现(招聘系统)(SpringBoot Thymeleaf)+文档

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

什么是路由器环回接口?

路由器环回接口(LoopbackInterface)是网络设备中的一种逻辑虚拟接口,不依赖物理硬件,但在网络配置和管理中具有重要作用。以下是其核心要点: 一、基本特性 1.虚拟性与稳定性 环回接口是纯软件实现的逻辑接口&#x…

HOT100 (滑动窗口子串普通数组矩阵)

先填坑 滑动窗口 3. 无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 思路:用一个uset容器存放当前滑动窗口中的元素 #include <bits/stdc++.h> using namespace std; class Solution {public:int lengthOfLongestSubstring(st…

工作实战之关于数据库表的备份

文章目录 1. dbeaver导出相关表到本地2. 使用sql语句3. 导入数据 1. dbeaver导出相关表到本地 常规情况下&#xff0c;如果想备份数据库的某张表&#xff0c;特别是临时备份或者表中数据不多的情况下&#xff0c;直接将数据库表中导出即可&#xff0c;后续可根据导出的insert语…

python克洛伊婚纱摄影预约管理系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

中间件-MQ常见问题

MQ常见问题 消息丢失消息会在哪些环节丢失应对机制 消息的顺序性消息幂等消息积压的处理 消息丢失 消息会在哪些环节丢失 网络传输环节&#xff1a;生产者发送消息到broker&#xff0c;broker中master同步消息给slave&#xff0c;consumer消费消息&#xff0c;这3个环节都是跨…

【python实用小脚本-63】每天花费2小时修复黑白照片,Python一键转换,节省90%时间(建议收藏)

一、应用场景故事 上周&#xff0c;我的朋友小李从家里翻出了一堆老照片&#xff0c;这些照片大多是彩色的&#xff0c;但他想把它们转换成黑白风格&#xff0c;让照片更有复古感。他尝试用Photoshop一张张处理&#xff0c;但花了整整一个周末&#xff0c;才处理了不到一半的照…

分页管理调试

一、分页管理原理 基本概念&#xff1a; 物理内存被划分为固定大小的页框&#xff08;Page Frame&#xff09;&#xff0c;逻辑地址空间被划分为相同大小的页&#xff08;Page&#xff09;。 通过页表&#xff08;Page Table&#xff09;实现逻辑地址到物理地址的映射。 逻辑…

搭建Hadoop集群standalone

在开始配置之前&#xff0c;请确保三台虚拟机都正确启动了&#xff01; 具体配置步骤如下。 1.上传spark安装包到某一台机器&#xff08;例如:hadoop100&#xff09;。 spark.3.1.2-bin-hadoop3.2.tgz。 2.解压。 把第一步上传的安装包解压到/opt/module下&#xff08;也可以…

AJAX技术全解析:从基础到最佳实践

目录 什么是 AJAX&#xff1f; 工作原理 XMLHttpRequest 基础 现代 Fetch API Axios 第三方库 数据处理 错误处理机制 跨域请求解决方案 最佳实践 总结 1. 什么是 AJAX&#xff1f; AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种通过浏览器与…

128.在 Vue 3 中使用 OpenLayers 实现绘制矩形截图并保存地图区域

&#x1f4cc; 本文将介绍如何在 Vue 3 中使用 OpenLayers 实现&#xff1a; 1&#xff09;用户可在地图上绘制矩形&#xff1b; 2&#xff09;自动截取该区域地图为图片&#xff1b; 3&#xff09;一键保存为本地 PNG 图片。 ✨效果如下图所示 &#x1f9e0;一、前言 在地图类…

单片机 | 基于STM32的智能马桶设计

基于STM32的智能马桶设计结合了传感器技术、嵌入式控制及物联网功能,旨在提升用户体验并实现健康监测。以下是其设计原理、功能模块及代码框架的详细解析: 一、系统架构与核心功能 智能马桶的系统架构通常分为主控模块、传感器模块、执行器模块、通信模块及用户交互模块,主…

最短路与拓扑(2)

1、信使 #include<bits/stdc.h> using namespace std; const int N105; int n,m; int g[N][N]; int dist[N]; bool st[N]; const int INF0x3f3f3f3f;int dij(){memset(dist,0x3f,sizeof dist);dist[1]0;for(int i1;i<n;i){int t0;for(int j1;j<n;j){if(!st[j]&…