当前位置: 首页 > news >正文

操作系统——线程的概念和特点

什么是线程,为什么要引入线程?

在很久以前,还没有引入进程,系统中各个程序只能串行执行

所以在那个时候,我们想一边运行音乐,一边运行QQ,显然是不可以实现的,在那个时候我们不可能边聊QQ,边听音乐

在之后,引入了进程之后,就可以实现边聊QQ,边听音乐这件事

在传统的进程定义中,进程是程序的一次执行

所以有的进程需要“同时”处理很多事情的,但是传统的进程只能串行地执行一系列程序

在传统的进程中,CPU会轮流的为各个进程服务,进程是程序执行流的最小单位

为了满足一个进程中能够宏观上同时做很多事情,人们又引入了“线程”机制,用来增加系统的并发度,系统的CPU的调度服务对象,不再是进程,而是进程当中的线程,每一个进程当中,可能会包含多个线程,然后CPU会轮流的用一定的算法轮流的为这些线程服务

这样的话同一个进程中被分为多个线程,如果用QQ视频聊天和QQ传送文件这两件事情想并发的运行的话,那么我们就可以把这两件事对应的处理程序,放到两个不同的线程下,那么这两个线程可以并发的执行,自然这两件事就可以并发的完成

所以在引入线程机制后,线程就成为了程序执行流的最小单位,在引入线程后,每一个进程可以有多个线程,并且这些线程可以有不同的代码,但这些代码都会并发的被CPU处理,然后并发的依次执行下去,这就是所谓的程序执行流的最小单位的意思

所谓的线程可以把它理解成一种“轻量级进程”,以前CPU服务的对象是进程,现在,线程是一个基本的CPU执行单元

引入线程机制后,有什么变化?

线程的属性

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

相关文章:

  • ssm框架之Spring
  • BIM/I-FGSM对抗样本生成算法实现(pytorch版)
  • Java-01-源码篇-JUC并发编程-常用类
  • 并查集基础模板(java实现)
  • 【力扣hot100题】(019)旋转图像
  • Kubernetes深度解析:云原生时代的容器编排引擎
  • 树莓派5从零开发至脱机脚本运行教程——8.设置静态IP地址篇
  • 【行测】资料分析
  • XML标签格式转换为YOLO TXT格式
  • 通义千问Qwen2.5-Omni:全模态实时交互的下一代多模态大模型
  • 小蓝和钥匙
  • 机器学习stats_linregress
  • Spring Boot 与 Spring Integration 整合教程
  • SQLiteBrowser 的详细说明,内容结构清晰,涵盖核心功能、使用场景及实用技巧
  • skynet中跨协程异步响应的场景
  • k8s污点与容忍
  • golang 的io与os包中的常用方法
  • 5G网络中A端口和Z端口
  • javaSE————文件IO(2)、
  • 【LeetCode 题解】算法:29.两数相除
  • WordPress.com搭建网站指南
  • 力扣HOT100之矩阵:73. 矩阵置零
  • B3637 最长上升子序列
  • OpenLayers:如何使用渐变色
  • 回归预测 | Matlab实现NRBO-Transformer-BiLSTM多输入单输出回归预测
  • 基于 Three.js 实现 3D 数学欧拉角
  • Multism TL494仿真异常
  • 玛卡巴卡的k8s知识点问答题(四)
  • Spring Boot 整合 ElasticJob 分布式任务调度教程
  • pycharm虚拟环境项目转移后配置解释器