论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
主机系统
›
linux
›
线程概念浅谈
线程概念浅谈
杀鸡焉用牛刀
论坛元老
|
2024-5-29 02:00:29
|
显示全部楼层
|
阅读模式
楼主
主题
2045
|
帖子
2045
|
积分
6135
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
1. 为什么要有线程
我们知道一个集成应用场景需要多个进程同时调理执行各自的功能,那么多进程的本质就是产生多个执行流,每个执行流执行不同的代码和功能,但是一个进程由PCB(task_struct)、进程地点空间、页表、文件形貌符表等资源构成,是一个资源集合,创建的开销较大,那么为了满意用户的多执行流的需求的同时又降低开销,线程就因此诞生,一个进程可以有多个线程,同一个进程的线程共享同一份资源(进程地点空间、页表等)。
2. 线程是什么
在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。
认识线程,我们需要重新定义进程,我们对进程的粗浅认知是进程 = PCB + 进程资源,但是我们一般以为一个进程只有一个PCB,是因为我们的程序一般都是单线程执行流,而多线程执行流就是有多个PCB指向同一份资源(进程地点空间、页表等)。
2.1 线程的理解
线程是CPU调理的基本单位,如果一个进程有多个线程,那么OS肯定要对其进行管理、运行、终止等操作,如何管理——先形貌,再构造。
Linux的计划者以为,进程和线程都是执行流,具有极度的相似性,没必要单独计划数据布局,因为一旦计划新的数据布局,就必然要计划配套的接口,编程难度增大,代码的维护也会更难,因此计划者想出直接采用PCB形貌线程,复用从前形貌进程的代码,来模拟线程,因此每一个PCB就对应一个线程,我们从前认识的进程就是特殊的一种情势——单线程进程(只有一个PCB)。
2.2 线程和进程之间的关系
将内存资源形象的表示为国家,进程表示一个个家庭,而线程就比作一个家庭中的一个个成员,每个成员都在并发地执行各自的工作,共享同一份家庭资源(房子、汽车等等),都是在为这个家庭生活所努力。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
杀鸡焉用牛刀
论坛元老
这个人很懒什么都没写!
楼主热帖
ElasticSearch-高级查询
手把手带你通过API创建一个loT边缘应用 ...
一、kotlin基础语法学习
第4章 复合类型
背八股文的都是什么水平
揭秘 ChunJun:如何实现 e2e&session ...
生产事故-记一次特殊的OOM排查 ...
Apache Hudi 在袋鼠云数据湖平台的设计 ...
开源轻量级工作流WorkflowCore介绍 ...
源码解析 Handler 面试宝典
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
人工智能
Java
前端开发
快速回复
返回顶部
返回列表