Linux多线程(二)之进程vs线程

news2025/6/5 19:01:42

文章目录

    • Linux进程VS线程
      • 进程和线程
      • 进程的多个线程共享
      • 关于进程线程的问题
    • 重谈地址空间
    • Linux线程周边的概念

Linux进程VS线程

进程和线程

  1. 进程是资源分配的基本单位(进程是承担分配系统资源的基本实体)

    执行流也是资源!线程是进程内部的执行流资源!

  2. 线程是操作系统调度的基本单位

  3. 线程共享进程数据,但也拥有自己的一部分数据:

线程ID
一组寄存器(线程的上下文数据)!!!!!!
栈!!!!!!
errno
信号屏蔽字
调度优先级

进程的多个线程共享

同一地址空间,因此Text SegmentData Segment都是共享的,

如果定义一个函数,在各线程中都可以调用,

如果定义一个全局变量,在各线程中都可以访问到,

除此之外,各线程还共享以下进程资源和环境:

文件描述符表!!
每种信号的处理方式(SIG_ IGN、SIG_ DFL或者自定义的信号处理函数)
当前工作目录
用户id和组id

进程和线程的关系如下图:

image-20250425225536647

关于进程线程的问题

如何看待之前学习的单进程?

具有一个线程执行流的进程

重谈地址空间

如何理解资源分配给各线程?

线程分配资源的本质

就是分配地址空间的范围!

如果不做划分就是各线程共享的!

页表深究

Linux线程周边的概念

线程 vs 进程

线程比进程要更轻量化(why?)

a.创建和释放更加轻量化(生死问题)

​ 创建线程只要把PCB创建

​ 创建进程要创建PCB、地址空间、页表、申请物理内存、构建映射等

​ 线程释放PCB

​ 进程就要释放创建、申请的资源

b.切换更加轻量化(运行问题)

​ 运行的代码变少了(线程只需要运行进程的一部分代码)

​ 线程切换不需要切换页表、不需要切换地址空间等(局部切换)

​ 线程在执行就是进程在执行。CPU里有一个硬件级别的缓存(cache

image-20250427170729722

image-20250427171218887

​ 线程切换的时候,虽然上下文在切换,但是cache里的热数据基本不变或者更新少量。

​ 进程切换的时候,cache里的热数据就要丢弃,需要重新缓存新的数据。
(冷数据->热数据需要时间)

线程也会有时间片,线程的时间片来源于进程,

时间片也是资源,所以合理分配给线程,

线程不能在进程中重新申请时间片,只能在进程中获取。

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

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

相关文章

【HW系列】—web常规漏洞(文件上传漏洞)

文章目录 一、简介二、危害三、文件检测方式分类四、判断文件检测方式五、文件上传绕过技术六、漏洞防御措施 一、简介 文件上传漏洞是指Web应用程序在处理用户上传文件时,未对文件类型、内容、路径等进行严格校验和限制,导致攻击者可上传恶意文件&…

如何实现 C/C++ 与 Python 的通信

C/C 与 Python 的通信可以通过多种方式实现,如使用 C API、Ctypes、Cython、SWIG、Python.h 或基于共享库的调用等。其中,使用 Ctypes 方式最为简便,适合快速调用已有的 C 函数库。例如,通过将 C 代码编译为动态链接库&#xff08…

好用但不常用的Git配置

参考文章 文章目录 tag标签分支新仓库默认分支推送 代码合并冲突处理默认diff算法 tag标签 默认是以字母顺序排序,这会导致一些问题,比如0.5.101排在0.5.1000之后。为了解决这个问题,我们可以把默认排序改为数值排序 git config --global t…

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)

ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)

PPT连同备注页(演讲者模式)一块转为PDF

首先,进入创建PDF/XPS: 然后进入选项: 发布选项-发布内容里选备注页: 导出的原始结果是这样的: 这个时候裁剪一下,范围为所有页面: 最终结果: 如果导出不选“备注页”而是只勾选“包…

项目三 - 任务8:实现词频统计功能

本项目旨在实现一个词频统计功能,通过读取文本文件并利用Java编程技巧处理和分析文本数据。首先,使用BufferedReader逐行读取文件内容,然后通过String.split(" ")方法将每行文本分割成单词数组。接下来,采用HashMap来存…

ollama list模型列表获取 接口代码

ollama list模型列表获取 接口代码 curl http://localhost:11434/v1/modelscoding package hcx.ollama;/*** ClassName DockerOllamaList* Description TODO* Author dell* Date 2025/5/26 11:31* Version 1.0**/import java.io.BufferedReader; import java.io.InputStreamR…

OPC Client第5讲(wxwidgets):初始界面的事件处理;按照配置文件初始化界面的内容

接上一讲,即实现下述界面的事件处理代码;并且按照配置文件初始化界面的内容(三、) 事件处理的基础知识,见下述链接五、 OPC Client第3讲(wxwidgets):wxFormBuilder;基础…

【C++进阶篇】初识哈希

哈希表深度剖析:原理、冲突解决与C容器实战 一. 哈希1.1 哈希概念1.2 哈希思想1.3 常见的哈希函数1.3.1 直接定址法1.3.2 除留余数法1.3.3 乘法散列法(了解)1.3.4 平方取中法(了解) 1.4 哈希冲突1.4.1 冲突原因1.4.2 解…

Spring Boot——自动配置

目录 1.bean加载方式 1.1XML方式声明bean 1.2 xml 注解方式声明bean 1.3通过Configuration和Bean 1.4使用Import注解 1.5使用上下文对象在容器初始化完毕后注入bean 1.6使用ImportSelector接口 1.7实现ImportBeanDefinitionRegistrar接口 1.8bean加载方式(…

使用 Vuex 实现用户注册与登录功能

引言 在构建具有用户认证功能的应用时,Vuex 可以用来管理用户的登录状态和相关信息。以下是如何使用 Vuex 来实现用户注册与登录功能的概述。 🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端…

进程通信(管道,共享内存实现)

01. 进程通信简介 进程通信工具分为数据传输工具和共享内存两类。这里我们讨论进程通信工具(IPC)里面的管道、system V和共享内存。在理解阶层通信之间,我们先了解用户空间缓冲区和内核空间缓冲区两个概念。 1.1 用户空间缓冲区 存在于用户态的进程用户空间&#…

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测

电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 目录 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测预测效果基本描述程序设计参考资料 预测效果 基本描述 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测 运行环境Matlab2023b及以上,锂电池剩余寿…

快速上手SHELL脚本常用命令

一、设置主机名称 1.修改文件方式 重启后生效 2.命令修改 重启shell后生效 二、网卡管理nmcli 1.查看网卡 2.设置网卡 详细配置:快速上手Linux联网管理-CSDN博客 三、简单处理字符 1.打印连续数字 2.设置字体颜色 \033[颜色代号m 3.反向打印文件内容 tac&a…

【自然语言处理与大模型】大模型Agent四大的组件

大模型Agent是基于大型语言模型构建的智能体,它们能够模拟独立思考过程,灵活调用各类工具,逐步达成预设目标。这类智能体的设计旨在通过感知、思考与行动三者的紧密结合来完成复杂任务。下面将从大模型大脑(LLM)、规划…

小巧高效的目录索引生成软件

软件介绍 本文介绍的软件名为Snap2html,是一款树形目录索引生成工具。 软件大小与便捷性 Snap2html这款软件已完成汉化,其体积仅170kb,小巧无比,且无需安装,可直接投入使用。 软件使用方法 该软件操作简便&#xf…

云原生架构设计相关原则

文章目录 前言云原生架构概述云原生架构的核心原则一切皆服务原则自动化原则韧性和容错原则可观测性原则 云原生架构原则的实践意义 前言 大家好,我是沛哥儿。今天想和大家深入探讨一下云原生架构的相关原则。在如今数字化飞速发展的时代,云原生架构已经…

华为云Flexus+DeepSeek征文 | Flexus X实例助力 Dify-LLM 一键部署:性能跃升与成本优化的革新实践

引言 在AI大模型应用快速普及的背景下,企业对低门槛部署、高性能算力与成本可控的需求日益迫切。华为云推出的Flexus X实例,作为专为AI工作负载优化的新一代算力底座,通过1.6倍算力提升、关键业务6倍加速、综合降本30%等核心优势&#xff0c…

数据库blog7_MySql的下载与配置准备

🌿MySql下载 🍂1.应用版本选择 选择社区版,免费适合初学者 相关链接下载页面下载界面介绍 🍂2.OS版本选择 根据自己的OS类型(Windows/Linux(CentOS/Ubuntu …)/macOS)选择对应版本…

YOLOv11助力地铁机场安检!!!一键识别刀具

文末有完整代码出处 随着现代社会的高速发展,交通工具和公共场所的安全管理面临着前所未有的挑战。尤其在机场、地铁、车站等公共安全检查点,如何提高安检效率、精准识别危险物品,成为了亟待解决的问题。在传统的安检过程中,X光图…