Ⅰ 6核12线程能同时开多少程序
是进程中的一个执行路径,多个线程之间共享一个内存空间(每个线程都拥有自己独立的栈空间,共用一份堆内存),线程之间可以自由切换,并发执行。一个进程最少有一个线程。
线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分 成若干个线程
所谓的多线程,就是指在一个程序的进程中开辟多个执行路径。
你的电脑能同时做多少件事?
打开计算机管理
在这里插入图片描述
打开设备管理器–>处理器
在这里插入图片描述
可以看到,图片所示的电脑共有12个处理器。图片所示的电脑的CPU型号为i7-8750H,该CPU为6核处理器,6核分了12线程,这12个线程相当于12个大脑,按理说只能同时做12件事情。
但是,打开任务管理器–>性能:
在这里插入图片描述
可以看到,该电脑此时正在运行的有近4000个线程,可是我们明明只有12个“大脑”,这是怎么做到的呢?这就是线程调度的功劳。
为了能使计算机在只有有限个“大脑”的情况下,不卡顿地执行更多的线程,线程调度为计算机的“大脑”们提供了两种分配机制,即两种线程调度机制。
线程调度的两种机制
分时调度
所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。
即,把12个脑子的时间均分,有多少线程就均分成多少份,每个线程轮流使用。虽然是多线程,但是电脑始终是一个脑子只能同时干一件事。多线程只是为了让多条执行路径能均分,能更合理地交替执行。
所以早期的电脑(比如DOS系统)一旦中了病毒,非常可怕。因为它只能去执行病毒,执行不了其他的,连鼠标键盘都动不了。
而所谓的线程调度,就是因为后续出现了一些多进程的操作系统(比如Windows),它们更合理地把一个计算机的时间切成n份,给各个软件轮流使用,造成多个软件同时在走的假象,本质上还是一次只同时做一件事,只是切换的很快而已。
抢占式调度(Java中使用的调度机制)
优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性), Java使用的就是 抢占式调度。
Win10设置线程优先级的方法:任务管理器–>详细信息—>选中线程—>右键—>设置优先级。
在这里插入图片描述
优先级越高,抢到的时间片(CPU分出来的一个个时间)的概率越大。谁抢到谁执行。当CPU空闲后,会主动抛出一个极短的时间片,由各个线程争抢,哪个线程拿到,就执行哪个线程的路径的事情。
时间片的概念是什么? by 卡图卢斯 [1]
时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片,即该进程允许运行的时间,使各个程序从表面上看是同时进行的。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。而不会造成CPU资源浪费。在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行。但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行。
CPU使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核新而言,某个时刻, 只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。 其实,多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。
比如把计算机的一秒比作人的一年,这一年干了旅游、回家、结婚等好几件事,但是这几件事并不是同时完成的,而是某几天做某一件事。
轮流做和穿插着做其实并不会缩短整体时间,只是会提高效率。比如,等待用户输入和执行相应操作,就可以有一个线程专门等着接收输入,有一个线程专门等着执行,提高CPU使用率。
事实上,反而“排队做事”比“同时做事、期间来回切换”所用的时间更少,因为省去了来回切换所用的时间。
Ⅱ 电脑的八核,16线程是什么意思
电脑的八核,16线程是
指的是CPU的内核有八个,CPU的内核是运算器和控制器,多核CPU可以增强并行处理能力,可以一次处理多个线程。在一个CPU上集成了几个核心。单核就是只一个,双核放两个核心在CPU上边,以此类推
线程是"进程"中某个单一顺序的控制流。也被称为轻量进程
线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程
线程和进程的区别在于,子进程和父进程有相同的代码段,不同的数据段,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存和CPU。
通俗的将计算机的越多,机器的性能越好,可以节约CPU处理数据的时间。进而发挥更好的性能。
Ⅲ 请问四核64位电脑最大能支持多少个线程
看内存和CPU 的利用率了。占用少的就可以多开,占用多就开得少。
Ⅳ CPU的核心数、线程数的关系和区别
一、关系:
1、线程数可以模拟出不同的CPU核心数。
CPU的核心数指的是硬件上存在着几个核心,而线程数可以模拟出多个核心数的功能。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。
2、对于一个CPU,线程数总是大于或等于核心数的。
一个核心最少对应一个线程,但通过超线程技术,一个核心可以对应两个线程,也就是说它可以同时运行两个线程。
二、区别:
1、存在形式不同。
(1)、CPU的核心数指的是硬件上真实存在的物体;
(2)、CPU的线程数只是一种逻辑上的概念,并非真实存在的物体,只是为了更好地描述CPU的运作能力。
2、线程数对于不同的CPU类型存在状态不同。
(1)、对于Intel的CPU:除了核心数的说法之外,还可以使用线程数的概念,因为它是通过Intel超线程技术来实现的。
(2)、对于AMD的CPU:只有核心数的说法,而没有线程数的概念,因为AMD的CPU没有超线程技术,一个CPU核心固定地对应一个线程。
3、出现原因不同。
(1)、核心数出现的原因:处理器主频提升上的技术遇到瓶颈,向“多核心”的方向发展可以在不用进行大规模开发的情况下将现有产品发展成为理论性能更为强大的多核心处理器系统,也因此出现了“核心数”的说法。
(2)、线程数出现的原因:为了进一步提高计算机多任务处理的工作能力。线程数越多,越有利于同时运行多个程序。
(4)一台电脑可同时开始多少线程扩展阅读:
线程数的多少,自然会影响到下载速度的多少,这样看来,下载线程数应该设置的越高越好,这样的理解是错误的。线程数的多少,要根据服务端和用户端的具体情况而定。
一般情况下,网络中的服务端,为用户提供的连接线程数,在1—10个,用户可以根据不同的服务端限制,来修改下载软件的原始下载线程数。根据下载资源的热门程度,其候选资源数量的不同,该任务下载可用的线程数也会不同,一般可以设置在35-50之间。