【Linux:线程概念】

news2024/10/1 6:39:39

目录

概念:

创建线程的函数:​编辑 ​编辑

有多进程为什么还需要有多线程?

线程调度的成本为什么低?

 进程与线程的区别:


概念:

  • 线程是CPU的基本调度单位,在进程内部运行。在内核中,进程是分配系统资源的基本实体。
  • 在Linux系统中没有线程,只有轻量级进程(没有单独设计PCB)。
  • Linux系统没有struct thread结构体,原因是系统统一用PCB表示执行流,就不用单独给线程设计数据结构和调度算法

创建线程的函数:
 

上图可以看见创建了两个线程,但是俩线程的pid却是一样的。 

pid和lwp一样的线程叫做主线程。操作系统调度线程时根据LWP来调度

有多进程为什么还需要有多线程?

  • 线程的创建成本比进程的低,但一个线程运行崩溃会影响其他线程
  • 线程删除仅仅只需要销毁一个tcp即可,但进程的销毁需要销毁pcb,页表,地址空间等
  • 进程切换需要切换页表,地址空间等等,但线程不用,线程的调度成本低

线程调度的成本为什么低?(面试

热数据: 高频访问的数据、极其重要的文件

在CPU中存在一个cache,用于存放热数据,在进程切换时,不仅要切换地址空间,页表,上一个进程cache的热数据也要做清空然后重新加载该进程的热数据。但线程是共享地址空间,CPU 中cache的数据每个线程都有可能用上,就不需要清空cache中的数据重新加载。

 进程与线程的区别:

  • 进程是资源分配的基本单位
  • 线程是调度的基本单位
  • 线程共享数据,但也有自己的数据:
    1.线程ID  2.一组寄存器(硬件的上下文数据)  3.栈 (线程在运行时会形成各种临时变量,这些临时变量会被每个线程保存在自己的栈区) 4.信号屏蔽字  5.errno  6.调度优先级
  • 多个线程之间共享以下资源:
  1. 文件描述符
  2. 每种信号的处理方式
  3. 当前的工作目录
  4. 用户id和组id

进程与线程之间的关系:

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

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

相关文章

Google AlphaChip改变了计算机芯片设计

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

\?拉普拉斯到底在讲什么\?控制理论\?倒立摆/

在大学课程中,无疑控制理论难倒了一大堆同学,那么接下来,从实践中来分析这个控制理论。 首先上场的就是拉普拉斯变化。上篇文章说了一下傅里叶函数的作用和使用,简单回顾一下: 傅里叶变换就是将一个周期或非周期的信号…

【有啥问啥】卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器

卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器 什么是卡尔曼滤波? 卡尔曼滤波(Kalman Filter)是一种高效的递归滤波器,专为处理包含噪声的线性动态系统而设计。它能够从一系列不完全且含…

淘宝商品评论接口技术详解及代码示例

引言 淘宝商品评论接口是电商数据分析中不可或缺的一部分,它可以帮助商家和消费者更好地了解商品的质量、用户满意度等信息。本文将详细介绍如何使用淘宝商品评论接口,并提供相应的代码示例。 淘宝商品评论接口概述 淘宝商品评论接口主要用于获取商品…

ndb9300public-ndb2excel简介

1 引言 ndb9300是一个自己定义的机载导航数据库劳作(不敢称为项目)代号,其中3表示是第3种数据库。 多年前,对在役民航客机中的某型机载导航数据库的二进制文件进行分析,弄明白它的数据结构后做了几个工具&#xff0c…

elasticsearch设置账号和密码

1、es安装,挂载路径根据实际情况修改 docker run -d --restart always \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -e "TZAsia/Shanghai" \ -v /mnt/data/efk/es/data:/usr/share/elast…

Autoware 定位之数据稳定处理(十)

0. 简介 这一讲按照《Autoware 技术代码解读(三)》梳理的顺序,我们来说一说Autoware中的数据稳定处理操作,这一讲的内容比较多,主要分为: pose_instability_detector 节点,旨在监测 /localiza…

无人机协同作业中的多网融合技术详解

无人机协同作业中的多网融合技术是一种复杂且高效的技术体系,它旨在通过整合多种通信网络和技术,实现多架无人机之间的无缝协同作业,从而提升任务执行效率、增强系统可靠性和扩展应用场景。以下是对该技术的详细解析: 一、多网融…

Leetcode 11.乘最多水的容器(字节,快手面试题)

题目链接:11. 盛最多水的容器 - 力扣(LeetCode) 题目描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同…

python-ds:Python 中的数据结构库(适用于面试的数据结构和算法合集)

在软件开发中,数据结构是组织和存储数据的方式,对算法的效率和程序的性能至关重要。Python 提供了许多内置的数据结构,但在一些复杂的应用场景中,原生数据结构可能无法满足特定需求。这时,一个功能强大、易于使用的数据…

STM32 实现 UDP 广播通信

目录 一、引言 二、准备工作 1.硬件准备 2.软件准备 三、LWIP 协议栈的配置与初始化 1.添加 LWIP 源文件 2.配置 LWIP 3.初始化 LWIP 四.创建 UDP 广播套接字 1.创建 UDP 控制块 2.绑定本地端口 五、设置 UDP 广播选项 1.设置广播地址 2.设置广播选项 六、发…

白内障分类数据集 3.4G

用于白内障检测的白内障和正常眼睛图像分类数据集。 名称 白内障分类数据集 规模 数据量:3.4GB图像数量:未明确提供,但通常这类数据集包含数千张图像。 类别 正常眼:无白内障的眼睛早期白内障:轻度白内障的眼睛中…

IDEA在git提交时添加忽略文件

在IntelliJ IDEA中,要忽略target目录下所有文件的Git提交,你可以通过设置.gitignore文件来实现。以下是步骤和示例代码: 1、打开项目根目录下的.gitignore文件。也可以先下载这个.ignore插件。 2、如果不存在,利用上面的插件新建…

Docker笔记-Docker磁盘空间清理

无用的容器指的是已经停止运行且处于非活跃状态的容器。无用的镜像包括没有被任何容器使用的镜像&#xff0c;或者是被标记为"<none>"的镜像&#xff0c;通常是构建过程中产生的无标签镜像。 通过执行 docker container ls -a 和 docker image ls -a 命令&…

GEE开发之Modis_NDWI数据分析和获取

GEE开发之Modis_NDWI数据分析和获取 0 数据介绍NDWI介绍MOD09GA介绍 1 NDWI天数据下载2 NDWI月数据下载3 NDWI年数据下载 前言&#xff1a;本文主要介绍Modis下的NDWI数据集的获取。归一化差异水指数 (NDWI) 对植被冠层液态水含量的变化很敏感。它来自近红外波段和第二个红外波…

云计算 Cloud Computing

文章目录 1、云计算2、背景3、云计算的特点4、云计算的类型&#xff1a;按提供的服务划分5、云计算的类型&#xff1a;按部署的形式划分 1、云计算 定义&#xff1a; 云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c;进入可…

在Linux中进行OpenSSH升级(编译安装在openssh目录)

由于OpenSSH有严重漏洞&#xff0c;因此需要升级OpenSSH到最新版本。 注意&#xff1a;在OpenSSH升级过程中千万不要断开服务器连接&#xff0c;不然的话&#xff0c;会出现断开后连接不了服务器的情况。 第一步&#xff0c;查看当前的OpenSSH服务版本。 命令&#xff1a;ss…

SpringMVC源码-AbstractUrlHandlerMapping处理器映射器将实现Controller接口的方式定义的路径存储进去

DispatcherServlet的initStrategies方法用来初始化SpringMVC的九大内置组件 initStrategies protected void initStrategies(ApplicationContext context) {// 初始化 MultipartResolver:主要用来处理文件上传.如果定义过当前类型的bean对象&#xff0c;那么直接获取&#xff0…

[每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别

文章目录 1. **支持的磁盘容量**2. **分区数量**3. **引导方式**4. **冗余和数据恢复**5. **兼容性**6. **安全性**7. **操作系统支持**8. 对比 国庆假期前补一篇 在一次扫描机械硬盘故障的问题&#xff0c;发现我本机SSD和机械硬盘的分类型不一样&#xff0c;分别是GPT和MBR&a…

茶树中丝氨酸羧肽酶样酰基转移酶基因家族的全基因组分析及其在没食子酰化儿茶素生物合成中相关酶的进化和特征分析-文献精读55

Genome-Wide Analysis of Serine Carboxypeptidase-Like Acyltransferase Gene Family for Evolution and Characterization of Enzymes Involved in the Biosynthesis of Galloylated Catechins in the Tea Plant (Camellia sinensis) 茶树&#xff08;Camellia sinensis&…