请帮忙解释什么叫做“线程”,几核CPU计算机中的“核”。

所谓一个核在同一个时刻可以处理一个单独的任务是什么意思,这里的任务是指什么?如果我编了一个程序用来计算矩阵行列式的值,那么它叫不叫做一个任务?假如说我现在运行一个很大的程序,如果直接在电脑上跑,这个程序只用一个核计算还是只用一个线程计算?如果只用一个核那么它又是如何运用核中的线程呢?对这些概念很模糊,请各位帮忙详细解释一下,网上的解释我也看了,但我觉得都没有说到核心!假如一个不会用并行的人,他在电脑上跑程序的话岂不是总有很多核是用不到的,那对于运算资源不是很浪费吗?

线程就是逻辑上他是一个核心,实际上他不是一个完整的核心。
超线程打个比方单核心双线程,他不是一个核心模拟两个核心,实际上超线程的核心是特殊的,一个核心中有一个处理单元+很多执行单元+指令单元+L1+L2+时钟发生器等等组成的核心,超线程的核心相比普通核心要多出一个处理单元,也就是一核心两个处理单元。
就是说一个核心无论怎么满载,无论怎么使用都不可能完全的利用核心资源,以及核心的执行单元,添加一个处理单元是为了充分的利用核心中剩余的资源,这就是超线程存在的目的。
核心的处理单元就是我们说的线程。
按照官方 的说法是,核心可以做加法和减法等等运算,但是一个核心同一时间只能做加法,或者减法,不能加减同时计算,当核心做加法时,减法的执行单元就是闲置的,超线程的处理单元也就是线程,就可以利用减法的执行单元,以及剩余的资源计算减法。
但是核心的资源没变,只是添加了一个可执行的处理单元。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-18
给你解释一下标题吧!

计算机的很多概念都是对计算机硬件的一种模拟,让我详细解释一下吧:

进程是对一台计算机的模拟,一台计算机有各种资源,包括CPU、内存,它是资源的管理基本单元,所以进程就是管理一个程序运行所需资源的基本单元(包括程序代码、数据、线程等)。
线程是对CPU的一种模拟,CPU是用来执行一台计算机中的一个程序的,所以呢线程是用来执行一个进程内的程序的,它负责管理执行相关的细节。之所以发明进程和线程的概念是为了区分执行和资源管理这两个不同的概念。早期的操作系统只有进程概念,没有线程的概念,但是也可以认为是单线程进程。

总之,进程相当于一台电脑,线程相当于一个CPU。。。。。

一个进程里没有线程,那么这个进程里的程序是不会执行的,好比是一台电脑没有CPU,能运行程序吗? 所以每次运行一个程序,操作系统会创建一个进程,然后创建一个主线程,这个主线程可以创建其他的线程。

什么是单线程?什么是多线程?
单线程就是指一个进程内只有一个线程在执行程序,多线程就是指一个进程内有多个线程同时执行程序的不同部分。想象一下,单个CPU的电脑和多个CPU的电脑的总体性能上有什么区别! 多个CPU的电脑上就可以有多个程序同时在执行了,因此总体性能就提高了,而单CPU的计算机上只有一个CPU,所以呢每个程序都必须排队等待使用CPU的机会。。。 学校有一个热水龙头和多个热水龙头是不一样的。。。。。。。

多线程技术分为硬件级多线程和软件级多线程。硬件多线程就是指硬件直接支持的多线程,
软件级的多线程就是软件实现的多线程。想一下那个效率高!
常说的“8核4线程”中的“核”指的是物理CPU,也就是实际的CPU,这里的8核就是指8个真实的CPU。“线程” 指的是硬件直接支持的多线程技术。“4线程”指的就是一个物理CPU可以同时维持4个线程“同时”(不是真正的同时)运行。因为我前面说线程相当于CPU,所以呢这里总共有8 * 4 = 32个逻辑的CPU,对于操作系统来说,他会认为有32个物理的CPU,但实际上只有8个实际CPU而已。。。。。。记住这里说的“8和4线程”中的8核指的是同一块芯片上有8个CPU,不是8个独立的CPU芯片,那样的话就不叫8核了。。。。。。

因为现在增加单个CPU的性能基本上已经达到饱和状态了,所以提出了在一块芯片上嵌入多个CPU来实现提高性能。所以现在基本上都是多核的CPU芯片,未来的趋势。

现在的多数算法和数据结构都是为了单线程单核环境设计的,所以软件要想在多线程环境想在多线程多核心环境下高效的运行则必须使用不同的软件实现方法。

不懂的可以HI我。。。。。。
第2个回答  2013-03-05
看样你是专家啊 都编程
我以我的看法说一下 所谓"核"就是处理器的物理核心也就是真核,而核就是以单线程单独运算。而所谓的"线程"就是由原来的"核"进行并行运算也就是使原来一个核变成两个核来用,但他并不是真正的两个核心
第3个回答  2013-03-05
你去百度文库看看吧,用普通语言也给你说不清楚啊
我们打个比方,CPU像一个房子,房子里4个人,称为4核,这个房子有8个门,称为8线程
至于说那些个运算,就看你的一个程序,同时运行了几个进程
相似回答