线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
一个进程可以有很多线程,每条线程并行执行不同的任务。
在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。
在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。
扩展资料:
线程与进程的区别可以归纳为以下4点:
1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
2)通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
3)调度和切换:线程上下文切换比进程上下文切换要快得多。
4)在多线程OS中,进程不是一个可执行的实体。
参考资料来源:百度百科-线程
线程是一段CPU可以执行的代码,是进程的一部分。多线程一般和多任务相关联。 你可以认为,单线程就是一个人在干活,多线程,就是多个人协作干活。
一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。
一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。
扩展资料:
cpu线程多好处:
理论上说,一个核心只能对应一条线程。而Intel的超线程技术,是利用CPU闲置的资源整合出的虚拟线程,就计算性能来说,是不及物理核心的实际线程好的。但是,却可以在一定程度上提升处理器并行处理的能力。和乱序执行一样,超线程也是一种提高处理器使用效率的方案。
就你举得例子来说。当一个核心处理A任务时,并不是整个核心都在参与工作,还有很大的闲置资源,而这些资源可以用来对B、C、D中某一个或几个进行预处理等等工作。
但是,超线程技术的一大问题就是和主线程的争夺。比如虚拟线程和物理实际线程都需要调用某一缓存单元时,虚拟线程就会暂停工作;
但是,如果该单元先于物理线程被虚拟线程调用,那么,虚拟线程就会影响物理主线程的工作,反而降低了执行效率。当下新一代的超线程技术在这个问题上做了比较好的完善,所以效果还是不错的,尽管无法和物理线程相比。
参考资料来源:百度百科-CPU多线程
本回答被网友采纳