Linux(八)线程概念

news2024/11/13 13:12:16

1、线程的本质

线程就是一个进程内部的控制序列

是CPU进行执行调度的基本单元。(调度一段代码的执行是通过线程完成的)

一个进程中至少有一个线程(所以进程与线程的数量关系是 一对一 或 一对多)

2、为什么把线程称为LWP

LWP——轻量级进程,在Linux下进程是资源分配的基本单位,线程是进行资源调度的基本单位,而线程使用进程pcb描述实现,并且同一个进程中的所有线程共用同一个虚拟地址空间,所以称线程为轻量级的进程

3、什么是多线程?什么是多进程?

假设有一个工厂老板改变自己的厂子规模

多进程:

        多建几个厂:但是资源消耗大,更稳定(shell、网络服务器)

多线程:

        在一家厂里多拉几条生产线:资源消耗小,但健壮性不如多进程


 在比如说:有一个任务序列,里面需要执行ABC三个操作

多进程:多进程就是把多个任务分成多个程序,一个进程执行一个,每个进程都有其自己的虚拟地址空间,然后映射到其对应的任务上。

 多线程:把一个任务分成多个模块,一个pcb调度其中一个模块

4、进程与线程的区别

本质层面的理解区别:

    进程是系统资源分配的基本单位(每运行一个程序,操作系统就要分配一次程序运行所需资源)

    线程是资源调度的基本单位,在linux下是通过pcb实现的,一个进程中可以有多个pcb,

    因此也被称为轻量级进程

多进程与多线程在多任务处理的优缺点

        多进程:健壮、稳定

        多线程:

                1、线程通信之间更加灵活(共享虚拟地址空间)

                2、创建和销毁成本更低(线程之间很多资源都是共享的,所以创建一个线程并不需要分配太多资源)

                3、同进程的线程间调度成本更低(cpu上加载的块表信息,页表指针等都不需要替换)

使用场景:对于程序的安全性要求大于性能和资源要求的选择多进程(shell),其他则多线程。

安全性(每个进程都有其独立的虚拟地址空间,有独立资源,具有独立性)

5、线程的独有与共享

多个线程在同一个进程中运行不会发生混乱

1)每个线程调度执行的就是一个函数

2)将所有可能产生混乱的内容单独整一份

线程之间共享信息:

        虚拟地址空间、堆区共用、文件描述表、信号处理方式、工作路径、用户ID、组ID

线程之间独有信息:

        标识符、栈区、上下文数据、信号屏蔽字、errno……

以栈混乱为例:假如只有一个栈,同一个进程的不同线程执行不同的功能时,线程1执行memcpy,线程2执行printf,接着线程1完成功能将要退出了,进行出栈操作,却把别的线程的功能函数给出栈了,这就发生了栈混乱,所以为了避免我们给每个进程都分配了其自己的栈,这样就不会相互之间产生栈混乱。

 

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

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

相关文章

数学建模之熵权法(SPSSPRO与MATLAB)

数学建模之熵权法(SPSSPRO与MATLAB)一、基本原理对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大(表明指标值得变异程度越大,提供的信息量越多),该指标对综…

Maxout 激活函数与 Max-Feature-Map (MFM)

前言 最近在读 A Light CNN for Deep Face Representation With Noisy Labels 提到 maxout 激活函数,虽然很好理解,激活的时候选取最大值即可,但是具体细节看了看相关的资料反倒混淆了。参考了一个相关的视频,大致屡清楚为什么说…

技术周 | qemu网络收发包流程

通常我们使用qemu创建虚拟机时,会使用下面的选项指定虚拟网卡设备的类型,以及桥接、tap设备参数等,如下: -device选项用于给虚拟机分配虚拟设备,如磁盘设备、网卡设备等 -netdev选项用于配置虚拟设备的后端&#xff0…

MACD底背离选股公式以及技术指标公式

今天介绍MACD底背离选股公式,整体来说编写难度比较大,按照MACD底背离的定义,需要分别找到2个价格波段低点以及快线DIF的2个低点,并进行比较,最终实现选股。 一、MACD底背离选股公式(平替版) 首先…

ES6 简介(一)

文章目录ES6 简介(一)一、 概述1、 导读2、 Babel 转码器2.1 是什么2.2 配置文件 .babelrc2.3 命令行转码2.4 babel-node2.5 babel/register2.6 polyfill2.7 浏览器环境二、 变量1、 let2、 const3、 ES6 声明变量4、 顶层对象的属性5、 globalThis 对象…

TCP协议面试灵魂12 问(二)

为什么不是两次? 根本原因: 无法确认客户端的接收能力。 分析如下: 如果是两次,你现在发了 SYN 报文想握手,但是这个包滞留在了当前的网络中迟迟没有到达,TCP 以为这是丢了包,于是重传,两次握手建立好了…

机器视觉高速发展催热人工智能市场,深眸科技深度布局把握新机遇

曾经,冰箱侧身的标签、空调背面不显眼的小螺丝、微波炉角落里的型号编码等质量检测,是工业生产线中最费人工、最难检测的“老大难”。这主要是因为我国家电行业长期以混产为主要生产方式,一条生产线上可能有几十种型号的钣金件产品同时经受质…

文档存储Elasticsearch系列--2 ES内部原理

前言:ES作为nosql 的数据存储,为什么它在承载PB级别的数据的同时,又可以对外提高近实时的高效搜索,它又是通过什么算法完成对文档的相关性分析;又是怎么保证聚合的高效性; 1 ES 分布式文档存储&#xff1a…

人工智能导论——谓词公式化为子句集详细步骤

在谓词逻辑中,有下述定义: 原子(atom)谓词公式是一个不能再分解的命题。 原子谓词公式及其否定,统称为文字(literal)。PPP称为正文字,P\neg PP称为负文字。PPP与P\neg PP为互补文字。…

MySQL实战作业示例:从离线文件生成数据库

前言 MySQL实战的课后作业,作业内容具体见 https://bbs.csdn.net/topics/611904749 截至时间是 2023年2月2日,按时提交的同学有一位。确实这次的作业非常有挑战性,作业用到的内容没有百分之百的学过,需要大家进行深入而有效的搜索…

【MyBatis】高级映射多对一,一对多和延迟加载

数据库准备:1. 多对一:多个学生对应一个班级(学生表是主表, 班级表是副表)多种实现方式, 常见的包括三种第一种方式&#xff1a; 一条sql语句, 级联属性映射// StudentMapper.xml // 一条sql语句, 级联属性映射 <resultMap id"studentResultMap" type"Studen…

Java当中的AQS

一、什么是AQS AQS的全称是:AbstractQueuedSynchronizer AQS是java当中的一个抽象类&#xff0c;用来构建锁和同步器。 例如我们常见的ReentrantLock&#xff0c;Semaphore等等都是通过AQS来构建的。 AQS的原理 如果被请求的共享资源没有被占用&#xff0c;那么就把请求资源…

spring boot集成xxl job

目录 1.xxl job介绍 2.搭建说明 (1)配置调度中心 (2)配置执行器 (3).执行 1.xxl job介绍 官网地址:分布式任务调度平台XXL-JOB XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 2.搭建说明 环境搭建主要分为两个部分…

《深入浅出计算机组成原理》学习笔记 Day19

冒险和预测&#xff08;三&#xff09;乱序执行参考乱序执行 尽管代码生成的指令是顺序的&#xff0c;但是如果后面的指令和前面的指令独立&#xff0c;完全不需要等待前面的指令运算完成&#xff0c;可以先执行。 这种解决方案称为乱序执行&#xff08;Out-of-Order Executi…

程序加载与运行过程中的资源分配与管理

目录 程序的加载 程序的内存空间 程序入口地址 BSS段初始化 程序运行过程中的堆栈管理 栈内存管理 变量的作用域&#xff1a; 栈溢出攻击原理 Linux堆内存管理 查看进程内存布局 内存分配器 内存块合并 top chunk 程序的运行分两种情况&#xff1a;一种是在有操作…

矩阵理论复习(九)

A为正规矩阵时&#xff0c;A的奇异值是A的特征值的模。A为半正定Hermite矩阵时&#xff0c;A的奇异值是A的特征值。 最佳逼近解 最小二乘解 矩阵的单边逆 A是左可逆的充要条件是A为列满秩矩阵 A是左可逆的充要条件是NA{0} 投影矩阵N(A)R(I-A),N(I-A)R(A) A是右可逆的充要…

腾讯电子签小程序跳转(app 跳小程序,小程序跳小程序) Api

腾讯电子签 官网地址&#xff1a;腾讯电子签跳转 api 文档 let id‘yDw9jUUgyg34gq97U7WZ9b1rWEBV******’ let name ‘张**’ let phone ‘MTQ3NDU3Oidioidkl’ let path pages/guide?fromSFY&toMVP_CONTRACT_COVER&id${id}&name${name}&phone${phone} wx…

Echarts解决左右上下边距问题( 两种方法)

第007个点击查看专栏目录文章目录示例效果示例源代码&#xff08;共88行&#xff09;相关资料参考相应的设置参数&#xff08;方法1&#xff09;相应的设置参数&#xff08;方法2&#xff09;专栏介绍示例效果 没有添加grid之前&#xff08;有grid的默认值来控制&#xff09; …

Web 3 财富分配方式

文章作者&#xff1a;Andrew Beal每个星期四&#xff0c;Forta 基金会团队都会在 Zoom 上聚会&#xff0c;享受虚拟欢乐时光。我还没有亲自见过我的一些同事&#xff0c;所以这是我唯一一次了解他们在办公室之外的身份。每个人都有故事要讲&#xff0c;你只需要问。规则是 “我…

Canal安装和配置

Canal安装和配置1.开启MySQL主从1.1.开启binlog1.2.设置用户权限2.安装Canal2.1.创建网络2.2.安装Canal2.3.查看canal是否与mysql建立连接下面我们就开启mysql的主从同步机制&#xff0c;让Canal来模拟salve 1.开启MySQL主从 Canal是基于MySQL的主从同步功能&#xff0c;因此…