【学习笔记】第二章——线程与多线程模型

文章目录

  • 一. 线程
      • 为什么要引入线程:
      • 引入进程后的变化
      • 线程的属性
      • 线程的实现
  • 二. 多线程模型
      • 1. 多对一模型
      • 2. 一对一模型
      • 3. 多对多模型
      • 三. 总结

一. 线程

为什么要引入线程:

  • 有的进程可能要“同时进行很多事”(如QQ的语音、视频、文件处理等)。但传统进程只能串行地执行,为此引入线程增加并发度
  • 程序执行流的最小单位:传统为进程,如今为线程
    在这里插入图片描述
  • 线程可以理解为“轻量级进程”
  • 进程内的各线程之间也可以并发,从而进一步提升系统的并发度
  • 引入线程后,进程只作为除CPU外的系统资源分配单元(如打印机、内容地址空间等)
    在这里插入图片描述

引入进程后的变化

  • 调度的基本单位更换成线程
  • 切换进程,需要切换运行环境,系统开销大
  • 切换线程不需要切换运行环境,系统开销小
  • 举个例子:后端组的电脑,更换使用员工:同样换成后端员工,就可以省去不少环境配置的功夫;而换成前端员工,那么相对肯定麻烦点。
    在这里插入图片描述

线程的属性

  • CPU 调度的单位
  • 几乎不拥有系统资源
  • 共享内存地址空间,同一进程的线程间通信无需系统干预
  • 同一进程中线程切换,不会引起进程切换;不同进程中线程则会。
  • 同一进程中线程切换,系统开销小;反之则大
  • 每个线程都有线程ID、线程控制块
    在这里插入图片描述

线程的实现

  • 用户级线程
  • 用户态下,即可完成线程切换
  • 对用户而言,是多线程;对操作系统而言,是单线程(透明)
  • 可以理解成:“从用户视角能看到的线程
    在这里插入图片描述
  • 系统级线程:
  • 线程管理由操作系统内核完成,必须在核心态下进行。
  • 可以理解成“从操作系统内核视角看得到的线程
    在这里插入图片描述
  • 二者结合的情况
  • 注意:用户级线程数大于等于内核级线程
  • 重点:只有内核级线程才是处理机分配的单位。
  • 图中例子看一下,帮助理解。
    -

二. 多线程模型

1. 多对一模型

  • 优点:不用切换到核心态,效率高
  • 缺点:一个线程阻塞则整个进程阻塞,并发度不高。不支持多核CPU下并行。
    在这里插入图片描述

2. 一对一模型

  • 优点:一线程阻塞,其他线程还可继续运行,并发能力强,支持多核CPU下并行。
  • 缺点:线程管理成本高,开销大。一用户进程占多个内核级线程
    在这里插入图片描述

3. 多对多模型

  • 结合以上两种模型的结果,解决缺点。
    在这里插入图片描述

三. 总结

在这里插入图片描述

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

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

相关文章

ghelper失效_Ghelper账号+网易云音乐领黑胶会员35天

点击蓝字关注我们,了解更多 追求美好的生活Ghelper账号 :账号:yiyaniosfx.cn密码:yiyanyiyan网易云:打开网易云音乐APP->顶部直播->随便进一个直播->右下角黑胶VIP领取->在次日1点后观看直播可领7天黑胶VIP->每天…

python利用tensorflow识别圆_RaspberryPi上实现佩戴口罩识别——2020电赛F题小记

今年的电赛题目非常反常,传统控制题目基本没有,新增加了测距题目,甚至物联网题目,Ai题目都出来了。直接电赛变算法钞能力大赛。看到F题:测温人脸识别,碰巧我们手头有调好的红外测温模块树莓派openmv&#x…

exchange邮件服务器_基于Spring Boot快速实现发送邮件功能

邮件在项目中经常会被用到,比如用邮件发送通知。比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。本篇文章带大家通过SpringBoot快速实现一个发送邮件的功能。 邮件协议 下面先简单了解一下常见的邮件协议。常用的电子邮件协议有SMTP、PO…

redis序列化_SpringBoot整合redis

redis是最常用的缓存数据库,常用于存储用户登录token、临时数据、定时相关数据等。redis是单线程的,所以redis的操作是原子性的,这样可以保证不会出现并发问题。redis基于内存,速度非常快,据测试,redis读的…

spring cloud alibaba_SpringCloudAlibaba与Cloud搭配方案

一 简介Spring Cloud Alibaba致力于提供微服务开发一站式解决方案。此项目包括开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,你只需要添加一些注解和少量配置…

php curl header_PHP中的yield与协程(二十一节)

大家好,我是老李。顺风说骚话,逆风讲道理最近在大家一起努力下,那个沙雕肺炎患病人数增长率下降了不少,总体来说还算顺,所以今天这篇注定又要骚话连篇了。听说最近不少玉米开始向大连、威海、烟台方向涌入,…

用稳压管保护单片机引脚_一步一步,全程揭开单片机的原理,让做电子变得轻松自如!...

学习单片机必要的硬件学习单片机都需要什么?首先要掌握必要的电子基础知识;再次选择大众化、性价比高的单片机,熟悉它的引脚功能定义;另外还需要电脑与下载程序的下载器。一、单片机建议选择型号为STC89C52RC单片机,如…

python word 表格宽度_RPA手把手——python-docx 设置 word 文档中表格格式

艺赛旗|做RPA生态先行者 RPA10.0全新首发免费下载 点击下载 引入会用到的库 from docx import Document from docx.shared import Pt from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Cm from docx.shared import RGBColor 表格样式 #方法一&#…

软引用和弱引用的区别_强、软、弱、虚引用的区别和使用

原文阅读:强、软、弱、虚引用的区别和使用​mp.weixin.qq.comJava提供了四种级别的应用类型:强引用、软引用、弱引用及虚引用。那么这四种引用类型有什么区别呢?首先我们通过一张图来看看四种引用在Java中的表示:FinalReference由…

python文本文件不能用二进制文件方式读入_如何使用python函数以二进制形式读取文件?...

虽然读取文件的方式各种各样,但是通过二进制,还是头一次,实现过过程并不难,我们需要将文件先做好封存,以函数的形式,保存下来,然后直接导入进行使用,这样就可以读取文件,…

一组数字中算出最相近的组合_据说在金字塔里发现的这组数字,貌似是通往宇宙的密码...

我们都知道阿拉伯数字是全世界都在用的计数单位的数字,我们的生活离不开阿拉伯数字,其广泛性很大。比如买菜、买衣服。做数学题等等都需要用到。不过呢早前有人称在埃及金字塔内发现了一组数字142857,这组数字貌似就是通往宇宙的密码。这一说…

前端悬浮窗效果_Flutter自绘组件:微信悬浮窗(一)

看微信公众号的时候时常会想退出去回复消息,但又不想放弃已经阅读一半的文章,因为回复信息后再从公众号找到该篇文章之间有不必要的时间花费,微信悬浮窗的出现解决了这个烦恼,回复完消息之后只需要点击悬浮窗就可以回到之前在阅读…

date类型_Quartz与Date---cron的相互转换

产生原因:因为项目最近设计到了一个Quartz相关的模块,前端需要传递时间参数到后台, 然后后台设置一个新的定时任务, 所以后台需要一个可以实现Date与cron之间的相互转换(因为Quartz需要的Cron格式的数据),所以就借助java的SimpleDateFormat的格式化,然后…

vbs if 不等于_6、if语句和关系表达式

示例3.1:星星公司致力于信件快递业务,收费标准是:500g以内6元,超过500g9元。应该就是输入重量,显示钱,那可以用cout和cin,如果w小于500,c是6,否则,c是9。//pr…

python文件是怎么写_python头文件怎么写

本文主要以python2为例。首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法。这两个部分就是Python中头文件的组成模块。编程风格#!/usr/bin/env python #在文件头部 ( 第一行 ) 加上 设置 Python 解释器 # -*- coding: utf-8 -*- #在文…

【学习笔记】第二章——处理机调度的概念、层次、时机、切换过程 调度方式、调度算法的指标

文章目录一. 概念 & 层次1. 高级调度(作业调度)2. 中级调度(内存调度)挂起态 & 七状态模型3. 低级调度(进程调度)4. 三种调度的对比联系 && 总结二. 时机、切换过程 & 调度方式1. 进程…

formdata上传文件_关于multipart/formdata上传文件

最近在做一个文件上传的开放接口,用到Content-Type: multipart/form-data这种请求类型,特地做了一些研究和记录。在最初的 http协议中,并没有上传文件方面的功能。RFC1867为 http协议添加了这个能力。常见的浏览器,如 Microsoft I…

【学习笔记】第二章——调度算法:先来先服务FCFS、短作业优先SJF、高响应比HRRN

文章目录一. 先来先服务(FCFS)二. 短作业优先(SJF)三. 高响应比优先1. 对前面两种算法的思考2. 描述四. 一、二、三总结例子都要手动写一遍哦~这三个是供早期的批处理系统使用的算法 一. 先来先服务(FCFS&a…

【学习笔记】第二章——时间片轮转RR、优先级调度、多级反馈队列调度算法

文章目录一. 时间片轮转二. 优先级调度三. 多级反馈队列调度算法四. 总结一. 时间片轮转 公平,轮流给进程提供时间片只用于进程调度(只有进程才能被分配时间片)抢占式,由时钟装置发出时钟中断来通知**缺点:**高频的进…

laravel 分词搜索匹配度_elasticsearch基础笔记9-elasticsearch 词项全文搜索

es的核心功能就是搜索和分析。那么我们看看搜索相关内容1、搜索机制在进入搜索之前,会对查询体根据情况进行分析和处理。2、有哪些常用搜索类型全文查询 词项查询 复合查询 嵌套查询 位置查询 特殊查询等。我们常用到的就是前三种,学起来简单&#xff0c…