位置: IT常识 - 正文

线程是什么(os线程是什么)

编辑:rootadmin

推荐整理分享线程是什么(os线程是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:线程是什么的基本单位,os线程是什么,java线程是什么,英特尔八核16线程是什么,键盘线程是什么,java线程是什么,线程是什么的基本单位,线程是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

《进程是什么》一节讲到,为了提高 CPU 的利用率,便于分配和回收计算机软、硬件资源,多任务操作系统引入了“进程”这个概念。

多任务操作系统中,执行的每个任务(程序)都是一个进程。借助进程调度程序,操作系统可以同时执行多个进程(又称并发执行),每个进程使用的计算机资源都由操作系统负责分配和回收。因此,您可以这样理解进程,它是多任务操作系统分配和回收计算机资源的基本单位。

注意,虽然多任务操作系统支持多个进程并发执行,但实际场景中,某些并发执行的任务并不适合用多进程的方式实现。例如实现一个可接收多个用户访问请求的 Web 服务器,为了避免用户等待的时间过长,Web 服务器需要并发地处理不同用户发来的请求。

这种情况下,如果以多进程的方式实现该服务器,即为每个用户单独建立一个进程,会产生以下问题:

每创建一个进程,都需要占用较多的内存空间。随着访问服务器的用户数量越多,创建的进程数量就越多,可用的内存空间就越少;进程的上下文切换是一个复杂的过程,需要消耗大量的系统资源。

因此,创建的进程越多,系统所做的进程上下文切换的次数就越多,消耗的资源就越多,最终导致服务器可以处理的用户请求数量越少。

为了更高效率地解决此类问题,操作系统在“进程”的基础上,又引入了“线程”这个概念。

什么是线程

线程是进程的一部分,又称轻量级进程,它可以执行所属进程中的部分或者全部代码。

进程是操作系统分配和回收计算机资源的基本单位,而真正负责执行程序的是进程中的线程。一个进程至少拥有 1 个线程(又称单线程进程),也可以拥有多个线程,每个线程负责执行不同的任务(又称为多线程进程)。

线程是什么(os线程是什么)

进程中的每个线程,都拥有自己的程序计数器、寄存器、和堆栈,它们的功能分别是:

程序计数器(Counter):跟踪要执行的下一条指令;寄存器(Register):临时存储当前执行的指令需要使用的数据;堆栈(Stack):简称栈,可以存储函数相互调用的过程以及期间用到的数据(例如形式参数、局部变量等)。

下图为您展示了单线程进程和多线程进程的内部结构:

图 1 线程的内部结构

其中,Data 表示进程的数据区,Files 表示已打开的一些文件资源,它们为整个进程所有,即所有线程共享这些资源。

和每个进程都对应有一个进程控制块(PCB)类似,每个线程也对应有自己的线程控制块(简称 TCB)。TCB 中记录的线程状态数据要比 PCB 少得多。因此创建一个线程消耗的系统资源更少,线程上下文切换的效率更高。

线程的类型

线程的类型有 2 种,分别为用户级线程和系统级线程。

1) 用户级线程

所谓用户级线程,即由用户自己建立的线程,此类线程的管理工作全部由用户自己完成,操作系统只负责管理进程。

为了便于用户管理和使用线程,操作系统提供有一个供用户使用的线程库,借助它,用户可以轻松实现对线程的创建、调度和销毁操作。此外,线程库还提供有线程间通信,线程上下文切换等功能。

注意,用户级线程的上下文切换,仅限于进行线程间的调度,而不会影响 CPU 调度(进程调度)。

2) 系统级线程

系统级线程指的是由操作系统负责管理的线程。操作系统会提供给用户一个调用接口(API),从而使用户可以创建、执行以及销毁线程。

操作系统在负责管理进程调度的同时,还负责管理系统级线程的调度工作。对于同一进程中的多个线程,操作系统可以将其调度到一个 CPU 上并发执行,也可以将其调度到多个 CPU 上并发执行。

对于多用户级线程的进程来说,操作系统只会为该进程分配一个 CPU。

系统级线程上下文切换的效率不如用户级线程,但仍比进程上下文切换的效率高。

本文链接地址:https://www.jiuchutong.com/zhishi/277452.html 转载请保留说明!

上一篇:Win10无法访问局域网电脑怎么办(Win10无法访问局域网计算机)

下一篇:Mac怎么提高色彩对比度?Mac提高色彩对比度教程(mac电脑色彩设置)

  • 遗失增值税专用发票如何处理办法
  • 购买财务软件做什么科目
  • 因租赁形成的使用权资产
  • 资产处置收益是什么会计科目
  • 劳务派遣公司如果倒闭了怎么办
  • 利润表中所得税费用包括哪些
  • 企业所得税税前扣除凭证管理办法
  • 月饼礼盒发票
  • 开发成本存货减少
  • 单品毛利计算公式怎么算
  • 当月预交增值税时所属期选了上期怎么办
  • 票据贴现无手续怎么处理
  • 收到购货单位货款属于什么会计科目
  • 代扣代缴的增值税可以作为进项税抵扣吗
  • 企业申请核定征收的要求
  • 企业所得税税前不得扣除的项目
  • 本单位员工投稿怎么写
  • 车间设备折旧计入哪个科目
  • 多缴税款能否跨年抵扣
  • 销售折扣和销售折让的账务处理
  • 工业企业销售管理制度
  • 公司注销固定资产如何处理
  • 子公司之间固定资产划转 增值税会计处理
  • 所得税前允许列支的税金包括
  • 华为nova9参数配置中关村
  • 建筑工地发生的典型意外情况有哪些
  • 税负率的销售收入是什么
  • 财务软件上线需注意什么
  • 实习生短期意外保险能企业所得税前扣除吗?
  • 企业租赁汽车交什么税
  • 公司从超市购买东西缴纳印花税吗
  • 总公司欠分公司的借款可以计提坏账
  • 如何使用vim创建文件
  • nkvmon.exe - nkvmon是什么进程 有什么用
  • 公司清算债权债务如何清理
  • 比较坏账准备与什么有关
  • 企业合并发生的交易费用
  • pytorch example
  • 微信小程序小小驯龙师破解版
  • php array合并
  • 发票作废冲红怎么做账
  • 增值税发票查验结果不一致是什么意思
  • 工程类什么情况下可以三方询价
  • 国外公司给国内个人汇款
  • csv文件导入到pycharm时报错
  • 增值税专用发票几个点
  • 工业企业增值税税负多少合理
  • 购买的矿泉水能卖吗
  • mysql数据库错误日志
  • 金税四期怎么监控个人账号
  • 企业支付给其他单位的奖励款需要纳税调整么
  • 互联网企业资产评估
  • 养老保险 退钱
  • 成本结转的方法实例
  • 应付利润属于什么科目类别
  • 预收账款是什么资产
  • 债务重组的方式主要包括哪些
  • 判断数据库表是否为空
  • centos下安装虚拟机
  • alpine安装apt
  • linux 软件 安装
  • u盘发光
  • Remoterm.exe - Remoterm是什么进程 有什么用
  • ie8-ie11浏览器
  • 水模拟软件
  • jquery简单例子
  • express.json()
  • linux脚本作用
  • python三角形角度
  • 读长沙师范学院收费多少钱
  • 按钮点击后消失
  • android 子线程间通信
  • javascriptcom
  • 江苏地税电子税务局官网登录
  • 西安市地税局各科科长
  • 如何在电子税务局申报社保
  • 岗位大练兵业务大比武简报
  • 美国有汽车吗
  • 郑州国税发票查询系统
  • 国税申报作废怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设