当前位置:首页 > 数码 >

线程定义是什么(线程基本概念)

来源:原点资讯(m.360kss.com)时间:2024-06-17 09:28:15作者:YD166手机阅读>>

什么是线程

线程是程序执行的最小单元,一个标准的线程是由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。此外线程是进程中的一个实体,是被系统独立调用和分配的基本单位。线程的运行只需要一些必不可少的资源,但它与同属于同一个进程的其他线程共享进程所拥有的的全部资源。一个线程可以创建和销毁另一个线程,同一进程中可以并发执行多个线程。由于线程之间相互之约,线程在运行的过程中是交替使用CPU的,所以呈现出间断性。

线程有三种基本状态:就绪、阻塞和运行。

线程定义是什么,线程基本概念(1)

就绪状态是指线程具备了运行的所有条件,在逻辑上已经是可执行的,就在等待时间一到就可以执行;运行状态是指线正在占用处理机,正在运行中;阻塞状态是指线程在等待另一个线程执行完成。

每个程序进程至少有一个线程,如果一个程序进程只有一个线程,那么这个线程就是程序进程本身。

线程是程序中一个单一的顺序控制流程,是在一个进程内部相对独立、可以调度地执行单元。在单个程序中多个线程可以完成多个不同的任务,这个操作就被称为是多线程机制,在多少的系统中多线程都可以很大程度的提升执行效率。

进程与线程

进程和线程是并发编程的基本概念,在大多数的编程语言中都有进程和线程的概念。

一个计算机系统中通常可以有多个线程和多个进程存在,但是在给定的时间内,每个处理器只能处理一个进程的任务。对于单核的处理来说,处理时间是通过时间片在进程和线程之间切换进行共享。

线程定义是什么,线程基本概念(2)

进程有一个相对独立的执行环境,通常有一个完整的、私有的运行时间资源。每个进程都有自己独立的内存空间,操作系统的进程表(Process Table)存储了CPU寄存器的值、内存映射、打开的文件、统计信息和特权信息等信息。进程一般是被定义为执行中的程序,也就是当前操作系统上某个虚拟处理器上运行的一个程序。多个进程并发共享同一个CPU的硬件资源。而操作系统是支持进程之间的相对隔离,实现这种并发透明需要付出的成本也是相对较高的。

线程定义是什么,线程基本概念(3)

在一般情况下,进程可以看做是一个程序。但在用户看到的一个独立运行的程序则是由很多的进程协同完成。而大多数的操作系统都是支持进程之间通信(IPC),例如管道和Socket。IPC不仅可以用来完成同一个系统的进程通信,还可以用于不同系统之间的进程通信。

线程,被称为是轻量级的进程,进程和线程都提供了一个执行环境,但是创建一个新的线程要比创建一个新的线程需要更少的资源。线程系统一般只维护一些用来让多个线程共享CPU所必需的最少的信息,特别是线程上下文(Thread Context)中一般只包含CPU上下文以及某些其他线程的管理信息,通常会忽略那些对于多线程管理不必要的信息。这样单个进程中为了防止数据遭到某些不合法线程的访问就完全落在应用程序开发人员手中。线程不像是进程那样彼此之间是隔离的,而且还会受到操作系统的保护,所以在多线程程序开发过程中需要开发人员时刻关注线程安全问题。

线程定义是什么,线程基本概念(4)

栏目热文

线程是用来干嘛的(线程是什么意思通俗易懂的)

线程是用来干嘛的(线程是什么意思通俗易懂的)

线程(Thread)是操作系统中能够进行任务调度的最小单位,它是进程内部的一个执行流。下面是对线程概念的详细解释:定义:...

2024-06-17 09:08:39查看全文 >>

线程什么意思啊(线程的功能是什么意思)

线程什么意思啊(线程的功能是什么意思)

专注于Java领域优质技术,欢迎关注文章来源于tobe的呓语 ,作者tobe进程最近有些烦恼,整日愁眉苦脸的,拜访内存的...

2024-06-17 09:23:00查看全文 >>

4核心8线程够用吗(6核心12线程跟4核心8线程哪个好)

4核心8线程够用吗(6核心12线程跟4核心8线程哪个好)

Intel 第八代酷睿四核移动版已经于8月底解禁,首发的移动低电压处理器全线升级到四核心八线程规模,为用户带来了非常明显...

2024-06-17 09:40:42查看全文 >>

专硕与学硕毕业证有什么区别(学硕和专硕毕业证上能看得出来吗)

专硕与学硕毕业证有什么区别(学硕和专硕毕业证上能看得出来吗)

考研即将开始,很多人已经做好了考研的最后准备,只等着在考场上奋力一搏了。但是不知道大家考的是什么样的研究生,是学术型研究...

2024-06-17 09:35:33查看全文 >>

专硕读几年(学硕和专硕含金量和认可度)

专硕读几年(学硕和专硕含金量和认可度)

来源:中国新闻网 “本来还沉浸在过了复试的喜悦中,突然得知自己的专硕3年。”今年3月份,来自江西的考生李雨在社交媒体上如...

2024-06-17 09:54:54查看全文 >>

线程如何用(怎么修改线程)

线程如何用(怎么修改线程)

wait()函数 当一个线程调用一个共享变量的 wait()方法时, 该调用线程会被阻塞挂起,直到发生下面几件事情之一才...

2024-06-17 09:55:52查看全文 >>

线程意味着什么(线程是什么课程里的)

线程意味着什么(线程是什么课程里的)

作者 | LieBrother责编 | 屠敏出品 | CSDN 博客什么是线程?试想一下没有线程的程序是怎么样的?百度网...

2024-06-17 09:31:53查看全文 >>

什么情况用线程(线程是什么意思通俗点讲)

什么情况用线程(线程是什么意思通俗点讲)

一、基本的进程和线程概念进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位,比如我们windows电脑上运...

2024-06-17 09:12:40查看全文 >>

线程的生命周期(Java线程的生命周期)

线程的生命周期(Java线程的生命周期)

在Java中,任何对象都要有生命周期,线程也不例外,它也有自己的生命周期。当Thread对象创建完成时,线程的生命周期便...

2024-06-17 09:13:31查看全文 >>

线程用什么表示的

线程用什么表示的

操作系统中的进程与线程 实时操作系统中,内核(Kernel)是核心,它的基本功能是多任务的切换和调度,而实现多任务的切换...

2024-06-17 09:54:02查看全文 >>

文档排行