【Linux】线程-线程概念

news2024/11/19 20:21:43

线程概念

  • 什么是线程
  • 线程的优点和缺点
  • 线程的用途和线程异常
  • 线程与进程的区别

什么是线程

实际上,线程是一个进程内部的控制序列,一个程序的一个执行线路就是一个线程。

并且一个进程中至少有一个线程,本质上,一个进程内部如果有多个线程,那么这些线程实际上是指向同一块地址空间的。而不论进程还是线程,从CPU看来都是一个PCB,只是说线程的PCB要比进程更加轻量化一些。意味着当需要进行切换时,线程切换的代价要远低于进程切换。

在这里插入图片描述

线程的优点和缺点

优点:
1.我们知道,并发和并行,那么当我们的进程中有多个执行流的时候,利用并行的方式可以极大的提高程序运行效率。
2.进程切换的代价要比线程切换的代价大的多
3.线程占用的资源要比进程少很多
4.可以并行的运行

缺点
1.当进程中的线程数量远远超过CPU的数量,可能线程切换的开销会影响进程运行的效率
2.对代码的鲁棒性要求更高
3.缺乏访问控制,编程的难度变高

线程的用途和线程异常

线程的用途:
合理的使用多线程,可以提高CPU密集型程序的执行效率
合理的使用多线程,也可以提高IO密集型程序的用户体验
线程异常:
当单个线程出现:越界访问,解引用空指针,管道破裂,除0,double free和栈溢出的情况时,会导致线程崩溃,从而触发信号机制,终止进程,当进程终止了,当前进程中所有的线程就都终止了。

线程与进程的区别

进程是操作系统进行资源分配的最小单位,而线程是操作系统进行调度的最小单位。同一个进程组中,有多个线程,多个线程都指向同一个进程虚拟地址空间,意味着各个线程是共享进程数据的。

但是如果仅仅是共享进程数据,那么就会出现调用栈混乱的情况,比如,主线程调用了func函数,其中调用了工作线程,当主线程的func函数要退出时,但是工作线程没有退出,按照压栈的操作来说,需要首先等工作线程退出后,才能退出主线程的func函数,这样就出现了调用栈混乱的情况。

为了防止出现这种问题,在进程虚拟地址空间内部,定义了一块共享区,其中就包含一个叫做调用栈,这样各个线程的调用栈是独立的,就不存在调用栈混乱的问题了。

在这里插入图片描述

线程独有的数据线程共享的数据
线程ID,调用栈、寄存器、erron,信号屏蔽字,调度优先级文件描述符表,信号的处理方式,工作目录,用户id和用户组id

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

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

相关文章

6. 树的入门

6. 树的入门 之前我们实现的符号表中,不难看出,符号表的增删查操作,随着元素个数N的增多,其耗时也是线性增多的,时间复杂度都是O(n),为了提高运算效率,接下来我们学习树这种数据结构。 6.1 树的基本定义 …

MybatisPlus-入门项目搭建、SQL日志打印、实体类注解、简单持久层操作

Mybatis-Plus mybatis plus概述 ​ Mybatis Plus (opens new window)简称 MP,它是一个MyBatis 的增加工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 Mybatis Plus官网:https://…

拉格朗日函数对偶问题、KKT条件

一、概念介绍 KKT最优化条件是Karush(1939)以及Kuhn和Tucker(1951)先后独立发表出来的,但在Kuhn和Tucker发表之后才逐渐受到重视,因此多数情况下记载成库恩-塔克条件(Kuhn-Tucker conditions)。先介绍几个优化的概念。 1.1 优化 最优化问题&#xff0…

大彩串口屏新品发布:大彩7寸新品RS485/232双通讯口人机界面发布!

一、产品介绍 新品发布:大彩7寸新品RS485/232双通讯口人机界面发布! 此次发布7.0寸外壳HMI产品采用普清800*480液晶屏、触摸选用电阻触摸,硬件性能上与M型医用级组态串口屏一样,软件上拥有炫酷的动画效果,页面切换流…

路侧激光雷达目标检测系统-篇2

本篇文章承接上文,主要阐述代码,分布的成果等工作。识别结果为单帧图片,每一张图片识别完之后,放在一起,就可以连续播放单帧文件,变成视频,或者直接在matlab图窗里面播放。关于这个函数的功能我…

HTML+CSS+JS 学习笔记(三)———Javascript(中)

🌱博客主页:大寄一场. 🌱系列专栏:前端 🌱往期回顾:HTMLCSSJS 学习笔记(三)———Javascript(上) 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 目录 JavaScrip…

NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_统计语言模型的平滑策略---人工智能工作笔记0035

https://www.cnblogs.com/nickchen121/p/16470569.html#tid-458p3Y 参考这个文档学习 条件概率的链式法则:这个是需要去补充的知识. 首先我们来看一下上一节说到的预训练,可以看到,我们比如有个鹅鸭的分类问题, 这个鹅鸭分类我们是用10万张图片训练的模型,这个已经可以把这个…

3. 马氏决策过程

3. 马氏决策过程 3. 马氏决策过程3.1 马氏过程3.2 马氏奖励过程3.3 马氏决策过程3.4 贝尔曼方程与最优值 3. 马氏决策过程 3.1 马氏过程 3.2 马氏奖励过程 3.3 马氏决策过程 3.4 贝尔曼方程与最优值

如何从有故障的 SD 卡恢复文件

如何从损坏的 SD 卡中恢复文件? 您是否正在与损坏的 SD 卡作斗争?您的 SD 卡上是否有您无法承受的数据丢失,但它没有响应?好吧,我们为您解决了! SD 卡是智能手机、相机和笔记本电脑中常用的存储设备。虽然…

2. 多臂老虎机问题

多臂老虎机问题 2. 多臂老虎机问题2.1 强化学习基本概念2.2 多臂老虎机与regret值2.3 随机多臂老虎机2.4 对抗多臂老虎机2.5 上下文多臂老虎机2. 多臂老虎机问题 2.1 强化学习基本概念 2.2 多臂老虎机与regret值

SpringCloud入门实战(七)-Hystrix入门简介

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看&…

图像基本运算

图像基本运算 图像算数运算: 1)图像加法 示例代码: import cv2 import numpy as np img1 cv2.imread(‘…/datas/fengjing1.png’)#(546, 820, 3) img2 cv2.imread(‘…/datas/logo.png’)#(512, 512, 3) print(img1.shape) img1resize cv2.resize(img1, (24…

4.微服务项目实战---Sentinel--服务容错

4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的 100% 可用,如果单个服务出现问题,调用这个服务…

活动报名|X-DecoderSEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态...

2023年04月27日(星期四)11:00-12:00,由智源社区主办的「智源LIVE 第39期线上活动:X-Decoder&SEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态本期活动将在线举办,…

echarts 环形图占比_环形图_仪表盘

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、环形图占比二、环形…

ACT-1,才是你更想要的人工智能助手

2022年开年以来,人工智能发展迅速,Transformers 的广泛应用使得语言、代码和图像生成等领域取得了巨大进展。在这个背景下,Adept 公司推出了第一个大型模型 Action Transformer (ACT-1),构建一个能在数字世界中采取行动的模型。 该…

〖ChatGPT实践指南 - 零基础扫盲篇①〗- ChatGPT简介、应用领域 及 哪些人应该为ChatGPT 的出现感到恐惧

文章目录 ⭐ 什么是 ChatGPT⭐ OpenAI 团队⭐ 详解 ChatGPT 聊天机器人⭐ ChatGPT的应用领域⭐ 作为程序员应该为 ChatGPT 的出现感到恐惧吗 有感于最近 ChatGPT 大火的原因,我这低眉顺眼的XXX也开始来蹭热度了。没办法,这玩意儿的热度太火了&#xff0c…

华为OD机试真题(Java),字符串加解密(100%通过+复盘思路)

一、题目描述 对输入的字符串进行加解密,并输出。 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; 当内容是数字时则把该数字加1&#…

JAVAweb开发学习

六、MybatisPlus快速上手 数据库操作 注意!注意!注意!springboot版本选择2.7.2 1.ORM介绍(对象关系映射) 既包含存储,又包含映射。将java类映射到数据库 2.MybatisPlus介绍 ORM框架 数据库操作来啦…

MySQL: 更改(删除)表名和字段

目录 自动添加表的属性: 更改表名和字段: 更改表名: 更改字段数据类型: 修改字段名: 添加字段: 删除字段: 修改字段排列位置: ​编辑 删除表的外键约束: 删除表&…