0
点赞
收藏
分享

微信扫一扫

线程--线程的概念

pipu 2022-09-14 阅读 56


线程(thread),有时被称为​​轻量级进程​​​(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合(上下文)和​​堆栈​​​组成。另外,线程是​​进程​​中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态,在单个进程中同时运行多个线程完成不同的工作,称为多线程。

周期

新建,就绪,运行,阻塞,死亡

优先级

有线程进入了就绪状态,需要有​​线程调度​​程序来决定何时执行,根据优先级来调度


由于同一进程的多个线程共享同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:

文件描述符表

每种信号的处理方式(SIG_IGN、SIG_DFL或者自定义的信号处理函数)

当前工作目录

用户id和组id

但有些资源是每个线程各有一份的:

线程id上下文,包括各种寄存器的值、程序计数器和栈指针

栈空间

errno变量

信号屏蔽字

调度优先级


举报

相关推荐

线程的核心概念

多线程的概念

Linux 多线程 ( 多线程概念 )

线程基础概念

Linux线程概念

0 条评论