线程知识点(一)

文章目录

  • 一、线程是什么?
  • 二、进程与线程的关系
  • 三、种类
    • 内核级线程
    • 用户级线程
    • 混合型线程
  • 总结


一、线程是什么?

线程是程序最基本的运行单位,真正运行的是进程中的线程。

线程是大多数操作系统支持的调度单位, 执行单元,某些系统不支持线程技术。
是允许应用程序并发执行多个任务的一种机制,同一程序中的所有线程均会独立执行相同程序。
共享同一份全局内存区域,其中包据初始化数据段、未初始化数据段以及堆内存段。

二、进程与线程的关系

  1. 一般情况下进程包含线程, 线程比进程更轻量(体积更小,开销更小)
  2. 线程是最小的调度单位,进程是最小的分配资源单位(主要指内存资源),进程也是一种调度单位。
  3. 在多线程模型中要避免进程退出,否则多线程也会终止, 因为进程是线程的容器
  4. 线程创建于进程中,于进程共享资源,线程用进程的内存资源,完成特定任务,如果在意内存开销 ,使用多线程技术是一个很好的选择
  5. 线程就是寄存器和栈 (线程可以占用时间片使用cpu,可以通过保存和回复处理器现场避免寄存器冲突, 所以线程是一个合格的调度单位)
  6. 进程创建过程中需要资源管理、而线程不涉及,而是共享(栈独自占用)
    仅有计数器,少量寄存器和栈,其余堆,变量,指针,引用,文件等共享(传递效率高)
  7. 线程能减少并发执行时间和空间开销:因为线程具有相问的地址空间,则切换时候不需要切换页表

三、种类

内核级线程

系统支持的线程,可以为其分配内核对象,与进程一样获取cpu
可以得到更多系统资源, 缩短任务完成时间,所有的线程资源分配,访问和切换都要系统干预,开销较大

用户级线程

系统无法识别用户级线程,无法将资源分发给普通线程
如果主线程sleep(0)了,根据就近原则可以给相邻线程资源
普通线程虽然无法被系统直接分发资源, 但是它可以使用cpu,只要主线程释放交换给他即可
用户线程是安装在进程用户空间的,所以完成线程切换或访问线程资源在用户空间即可完成,无需系统干预

混合型线程

可以为线程分配内核对象,得到更多的时间片,线程安装在用户层, 较少线程调度开销
混合型线程支持的系统比较少


总结

这就是我大概的理解,线程与进程都是很重要的知识点!

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

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

相关文章

初学者应该掌握的MySQL数据库的基本组成部分及概念

MySQL数据库作为一种开源的关系型数据库管理系统,被广泛应用于Web应用开发和数据存储。它具有高性能、易用性和可靠性等特点,是开发者们的首选之一。在本篇文章中,我们将详细介绍MySQL数据库的核心组成部分,帮助你深入理解这个强大…

详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan macvlan是一种网卡虚拟化技术,能够将一张网卡(Network Interface Card, NIC)虚拟出多张网卡,这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址,从而在系统层面表现为完全独立的网络…

微课与慕课

一、微课 “微课”是一种教学资源,时长约几分钟,视频或者动画格式,非常符合信息快餐时代大众的视觉驻留规律和认知学习特点。 二、慕课 慕课(MOOC, Massive Open Online Courses)即“大型开放式网络课程”&#xff…

winmail添加gmail和QQ邮箱(现已更新为outlook mail)

想在windows自带的邮件桌面应用里,不仅能访问outlook邮件,也能访问gmail邮件和QQ邮件的方法。 参考文章: Windows 10 的邮件怎么添加并同步 Gmail?​www.zhihu.com/question/53079836/answer/147669935?utm_psn178781450843941…

个人成长的利器:复盘教你如何避免重蹈覆辙

前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 最近忙着学习和工作,更新比较少,期间一直在思考如何才能快速…

React Router是什么?你如何使用它来实现单页面应用的路由?

React Router是一款用于构建单页面应用(SPA)中处理路由的JavaScript库。它允许开发者在不刷新整个页面的情况下进行交互式的用户体验,是React生态系统中非常受欢迎的第三方库之一。React Router不仅提供简单的URL路由管理功能,还帮…

如何使用Gau针对任意指定域名执行URL收集任务

关于Gau Gau是一款功能强大的URL收集工具,该工具可以针对任意指定的域名,从AlienVault的开放威胁交换器、Wayback Machine、Common Crawl平台和URLScan收集并爬取已知的URL地址。 Gau,全称为GetAllUrls。该工具灵感来源于Tomnomnom的wayback…

2024.06.20 刷题日记

2. 两数相加 这道题目的思路就是模拟,好处是逆序的,不用反转链表: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {// 创建一个新的链表节点,作为返回结果的头节点ListNode* dummyHead new ListNode(0);ListNode *p l1…

【Linux】进程间通信_1

文章目录 七、进程间通信1. 进程间通信分类管道 未完待续 七、进程间通信 进程间由于 进程具有独立性 ,所以不可以直接进行数据传递。但是我们通常需要多个进程协同,共同完成一件事,所以我们需要进程间通信的手段。进程间通信的本质就是先让…

linux创建用户、切换用户、删除用户

创建用户 # 创建新用户 sudo useradd newuser# 设置新用户的密码 sudo passwd newuser切换用户 # 切换到新用户 su newuser# 验证用户切换 whoami 删除用户 # 删除用户 sudo userdel -r username# 验证用户是否已被删除 grep username /etc/passwd 如果删除用户时提示&…

基础C语言知识串串香11☞宏定义与预处理、函数和函数库

​ 六、C语言宏定义与预处理、函数和函数库 6.1 编译工具链 源码.c ——> (预处理)——>预处理过的.i文件——>(编译)——>汇编文件.S——>(汇编)——>目标文件.o->(链接)——>elf可执行程序 预处理用预处理器,编译用编译器,…

WordPress视频主题Qinmei 2.0

WordPress视频主题Qinmei 2.0,简单漂亮的WP视频站源码 主题功能 可以根据豆瓣ID直接获取到其他详细信息,省去慢慢填写的痛苦;播放器支持直链,解析,m3u8格式,同时解析可匹配正则自动更改;新增动…

Java并发编程原理精讲 视频教程 下载

Java并发编程原理精讲 视频教程 下载 ├─01 第一章 线程基础 │ ├─01 线程概述 │ │ 01 认识线程.mp4 │ │ 02 线程和进程的关系.mp4 │ │ 03 并发和并行的区别.mp4 │ │ 04 并发编程的应用场景和风险.mp4 │ │ │ ├─02 线程…

pip命令总结

# Commands: 设置pip安装程序为国内镜像 永久设置 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip install #安装包 pip download #下载包 pip uninstall #卸载包 pip freeze …

2024全国各地高考录取分数线一览表(含一本、二本、专科)

2024年高考录取分数线陆续公布,上大学网(www.sdaxue.com)为大家整理全国31个省市高考录取分数线汇总,包括本科批、专科批和特殊类招生控制分数线汇总,来看看你的省份多少分能上大学吧。 一、2024年全国高考录取线一览表 1、宁夏 一本线&…

Java开发-面试题-0007-GPT和MBR的区别

Java开发-面试题-0007-GPT和MBR的区别 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯技术文) 生活公众号&#…

美国Linux服务器系统网络流量监控工具

美国Linux服务器系统上有很多现成的工具,能够满足用户进行监控网络的需求, 虽然每个工具的特点都有所不用,但都能够帮助美国Linux服务器用户实现监控网络流量的目的,区别只在于不同的工具其工作方式的不同,本文小编就来…

电压互感器在线监测

电压互感器在线监测是电力系统维护和安全运行中的重要环节,它能够实时监控电压互感器的运行状态,确保电力系统的高效和稳定运行。以下是对电压互感器在线监测的详细介绍: 一、电压互感器在线监测的意义 电压互感器作为电力系统中的重要设备,其安全性和稳定性对电力系统的…

2025秋招 Python 面试真题专栏目录

欢迎来到 2025 秋招 Python 面试题专栏!本专栏旨在为准备 Python 面试的同学提供一个全面的资源库,涵盖 Python 语言特性、操作系统、数据库、网络、数据结构、编程题等各个方面的知识。以下是本专栏的详细目录及内容简介: Python语言特性 …

Golang中的CAS操作

CAS(Compare And Swap)算法在Go语言中是作为原子操作提供的。CAS是一种无锁的技术,当多个线程尝试使用共享数据时,CAS能够检测到其他线程是否已经改变了这个数据,这是一种解决并发问题的策略。 CAS算法包含三个参数—…