小工具知识网

当前位置: 首页 > 行业知识 > Linux:线程控制

行业知识

Linux:线程控制

2026-10-30 14:56:00 来源:互联网转载

���录

线程的相关知识

线程创建

pthread_create

线程关于进程内部资源问题

线程等待

pthread_join

线程退出

pthread_cancel

线程id的理解

pthread_self

线程分离

pthread_detach


线程的相关知识

首先线程是在进程内部执行的,是OS调度的基本单位

线程的理解:之所以说线程是在进程内部执行的,是OS调度的基本单位,是因为线程是在进程的地址空间内运行,并且CPU其实是不关心执行流是进程还是线程,只关心PCB

而Linux中,一个进程有一个PCB结构体,即task_struct,以这个task_struct为父亲,不重新创建新的地址空间、页表,而是只创建新的task_struct,与进程的task_struct共用地址空间(mm_struct)、页表,并且通过一定的技术手段,将当前进程的资源,以一定的方式划分给不同的task_struct,上述这样的每一个task_struct就称之为线程


在前面我们学习过,用户视角中:进程 = 内核数据结构 + 该进程对应的代码和数据

并且之前学习进程时,进程的内核数据结构只有一个PCB结构体,今天引入了线程,知道了一个进程的内核数据结构可以有多个PCB结构体

只有一个PCB结构体,称之为内部只有一个执行流,而若有多个PCB结构体,说明进程内部具有多个执行流,其中一个task_struct就代表进程内部的一个执行流


今天站在内核视角:进程是承担分配系统资源的基本实体

因为系统分配的资源都是刚开始的进程向系统索要的,而下面的线程都只是用上面进程所申请的资源,所以内核角度说进程是承担分配系统资源的基本实体

CPU并不关心进程与线程的概念,只关注task_struct

在Linux下,PCB

上一篇:虎皮兰扦插后的浇水秘籍揭秘,轻松养护,植物茁壮生长!

下一篇:Lutube涉黄问题深度解析,安全下载指南与警示提醒