2011-08-30 15:24:34 +0000 2011-08-30 15:24:34 +0000
27
27

什么是线程,它们在处理器中的作用是什么?

我在看英特尔 奔腾e5700 CPU的统计。

它有两个核心和两个线程。线程对处理器有什么作用?核心数和线程数之间有什么关系吗?线程对整个系统有什么作用?

答案 (3)

21
21
21
2011-08-30 15:34:16 +0000

核心数是指CPU芯片本身的物理核心数,而线程数是指CPU本身可以同时执行的单个应用线程数。在没有任何额外或特殊硬件的情况下,这等于核心数。然而,有些处理器的线程数会比核心数多。 一些英特尔CPU 有一个叫做 超线程 的功能,它允许操作系统看到每个物理核的逻辑核数是双倍。这允许操作系统同时调度和运行双倍数量的线程,所以在我上面链接的CPU的情况下,有4个物理核心,但有8个逻辑核心(所以你可以同时运行8个线程)。

操作系统中运行的每一个单独的应用程序都是单线程或多线程的(把每个线程看成一个 “子应用程序")。单线程应用程序只需要一个线程就可以在CPU上运行,而多线程应用程序则有许多子线程同时运行。额外的核心,或者说超线程,允许更多的应用线程同时运行。

这使得多线程(而非单线程)应用程序的运行速度大大加快,因为在CPU上可以同时运行多个线程。


最后要说明的是,超线程提高了一些专门为其优化的多线程应用程序的性能(因为物理内核的数量仍然只有逻辑内核的一半)。在一些不同的情况下,应用程序可能会在超线程被禁用的情况下运行得更快(尽管许多应用程序确实从中受益)。无论超线程的情况如何,增加物理核心的数量总是有利于多线程应用。

9
9
9
2011-08-30 15:45:22 +0000

一个 “核心 "代表了一个处理器的实际物理子集,它本身可以处理处理,而一个 "线程 "则代表了该处理器一次可以处理多少个实际进程。英特尔开发了一种他们称之为 "超线程 "的技术,这种技术允许一个物理核心(通常一次只能处理一个线程)现在能够同时处理两个线程。

一个线程是处理器必须处理的任务,为了简单的解释,你可以假设你打开的每一个应用程序(如油漆、记事本、媒体播放器)都有自己的线程……现在这并不意味着你只能同时打开两个应用程序,只是因为处理器和操作系统在 "切换线程 "方面的工作速度非常快,以处理你打开的每个应用程序的需求。你将会体验到更多核心带来的更好的性能,因为现在你可以把所有的工作交给更多的核心处理器。

例如,我的工作电脑里有一台i7。i7有4个物理核心,但每个核心都可以进行 "超线程",这使得这个处理器可以同时处理8个线程。所以,如果我打开任务管理器,会看到处理器性能规模的8个框。

一般的经验法则是物理核心越多越好,而线程越多越好。因此,如果你比较的是一个有4个核心和4个线程的处理器,会比2个核心4个线程更好。但你的处理器能处理的线程越多,它在多任务处理时的表现就越好,对于一些非常密集的应用(视频编辑、CAD、CAM、压缩、加密等),本身就会同时利用一个以上的核心。

-1
-1
-1
2019-07-18 22:54:39 +0000

在IE或chrome中点击文章中的链接,,,每次你点击你做一个线程。你点击的链接越多,线程越多。