单线程和多线程的区别

电脑教程011

单线程和多线程的区别,第1张

多线程和单线程本质区别是:(1)多线程的产生并不是因为发明了多核CPU甚至现在有多个CPU+多核的硬件,也不是因为多线程CPU运行效率比单线程高。单从CPU的运行效率上考虑,单任务进程及单线程效率是最高的,因为CPU没有任何进程及线程的切换开销,(2)实际上,多线程的出现主要为了解决IO设备的读写速度往往比CPU的处理速度慢造成的单线程程序运行阻塞问题,一个极端的例子就是如果你需要用户在键盘上输入一个数据,当用户没有输入前,单线程程序就阻塞了,多线程程序就可以放个音乐或继续干一些程序中除了键盘输入外的工作,因此,多线程能提高因程序由于等待某个资源阻塞时其他资源的利用率(是利用率不是效率)。(3)因此多线程与单线程的最大区别,多线程程序能在等待某个IO操作时,继续完成非这个IO的其他工作,有利于提高完成整个任务的效果和速度。此外,多线程程序与单线程程序对程序设计也有不同的流程和结构,多线程需要考虑对静态变量等资源的操作互锁及程序执行的同步问题。

线程:

程序运行流的最小单元,一个程序是有一个或多个线程组成。

作用:

cpu线程越多,程序运行越快,或者可以同时运行的程序越多。换句话说,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)、线程数出现的原因:为了进一步提高计算机多任务处理的工作能力。线程数越多,越有利于同时运行多个程序。

扩展资料:

线程数的多少,自然会影响到下载速度的多少,这样看来,下载线程数应该设置的越高越好,这样的理解是错误的。线程数的多少,要根据服务端和用户端的具体情况而定。

一般情况下,网络中的服务端,为用户提供的连接线程数,在1—10个,用户可以根据不同的服务端限制,来修改下载软件的原始下载线程数。根据下载资源的热门程度,其候选资源数量的不同,该任务下载可用的线程数也会不同,一般可以设置在35-50之间。

参考资料来源:百度百科-核心数量

参考资料来源:百度百科-线程数