进程和线程

最近因为express框架里的cluster模块所以在深入理解node这个单线程,线程的概念。
网上找了很多资料,还是这一篇比较清晰。对以后买电脑玩游戏还是很有帮助的。。。
感觉学着学着有点偏题了

最后的结论是:有钱买高配就行。。纠结什么性价比。。。

https://www.zhihu.com/question/21023003

。。。
。。

超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能
多线程不等于多开,利用多线程可以让一个游戏运行得更流畅,让一个播放器解码更快,关键是软件经过并行优化


双核四线程是应用了超线程技术, 把两个逻辑内核模拟成两个物理芯片, 让单个处理器都能使用线程级并行计算 。
进而兼容多线程操作系统和软件, 减少了CPU的闲置时间,提高的CPU的运行效率。
普通低负荷情况下和四核四线程没什么差距, 但是高负荷下超线程技术就没用了, 双核就是双核 四核就是四核~

四核4进程对软件多开提速有优势(一般是至少3款大型软件才会体现),但是对单一或者两款大型软件同时运行反而不如双核4线程来的有优势。

i5系列多为4核心+4线程的规格,缓存容量和处理器频率略低于i7,取消了多线程特性,
这一点的主要影响在于多任务的处理、大型设计、3D软件的优化上。而对于此外的大部分游戏、程序来说,i5和i7的运行效率差异并不大。
也就是说,如果不是确定自己常用的应用需要超线程技术,那么i5处理器会是比i7更加有性价比的选择。


。。
。。。

(转)
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。或者说进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程则是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

进程和线程的关系:
  (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
  (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
  (3)处理机分给线程,即真正在处理机上运行的是线程。
(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

打开你的任务管理器就能看到进程一栏。如下图

程序、线程、进程的树形关系图如下

操作系统的设计,因此可以归结为三点:
(1)以多进程形式,允许多个任务同时运行;
(2)以多线程形式,允许单个任务分成不同的部分运行;
(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

例如我们在玩格斗游戏程序的时候,玩家1出拳时,玩家2格挡,这两个动作是同时发生的,所以此时涉及到了多线程,所以游戏进程要至少有两个线程,分别为出招和格挡。比如我们用QQ聊天,同时开着QQ音乐,此时大家感觉QQ聊天和QQ音乐是同时进行的,但是CPU在同一时间只能处理一件事情。
我想大家小的时候都应该看过或者很喜欢看一种漫画书,当你快速的翻阅那本书的时候,书上的人物好像动起来了一样,就是所谓的逐帧动画,CPU的处理事件的原理与其类似。
当你运行QQ聊天和QQ音乐的时候,CPU的工作就是不断的切换进程,如果每秒切换6次,你一定会觉得卡,如果切换的足够快,你将会感觉是同时在运行QQ音乐和QQ聊天。

结论:
  (1)线程是进程的一部分
  (2)CPU调度的是线程
  (3)系统为进程分配资源,不对线程分配资源

。。。
。。

百度知道上的一个回答,很赞:
超线程和多通道其实有着基于相同理论的特点,先说说超线程技术:因为CPU(特别是多核CPU)执行指令时一次只能执行一条指令,而超线程技术就是指通过硬件指令让CPU可以同时执行两条指令甚至多条指令,就好比你的左右手,单线程就是你只用右手工作,而超线程就是你左右手一起工作。这样可以充分发挥核心的闲置性能。

而为什么会出现超线程技术呢:在P4年代,受到工艺制约,外频/前端总线/内存调取速度 提升这些东西所花费的成本是巨大的,所以INTEL就另辟蹊径,将两个逻辑内核模拟成两个物理芯片,从而达到提升CPU效率。

在实际应用方面呢:为什么当初推出多线程会被人骂,这里有两个历史因素。第一条因素就是加载多线程技术的P4 CPU要比无多线程技术的P4要大!很多人没有注意,然后买回家后发现主板无法安装。第二条因素就是当初绝大部分都是单线程软件,说白了是根本无法支持多线程CPU,而多线程CPU在处理单线程软件时,速度和单线程CPU差不多,甚至会比单线程CPU要低(因为虽然另一个芯片没有工作,但是还是占用了一定的资源)。这就是为什么当初有那么多人骂的原因。

再说说现在:超线程技术实际上是应对使用方法的,假如你只运行一个程序,比如玩一个游戏,或者看一部电影,或者搞一个设计。那超线程技术的8线程和4线程没有过大区别。但是如果你玩游戏的同时开了一个电影,然后又在顺便搞图形设计,末了还放了一张CD听,除去显卡内存方面的制约,8线程要比4线程效率很多。

所以超线程技术是非常实用的一种技术,体现在你开的程序越多,他发挥作用就越大。即使只开单一程序,只要那个程序支持多线程处理,那么8线程也会比4线程快上一些。
https://zhidao.baidu.com/question/376002959.html

。。
。。。

posted @ 2017-08-24 17:17  以梦为马papapa  阅读(178)  评论(0编辑  收藏  举报