逛园子有日子了,今天这个大洗的日子,也完成下人生中的第一次,让开发这条路走的更没羞没臊一些。
截个图,留下痛苦的第一次,不再是看帖不回的黄花小码农了
下面切入正题
一:多核处理器
1、什么是多核处理器?
多核处理器,可以想象成一枚处理器中封装着多个相互连接的内核,并且每个内核都可以访问主内存。
2、为什么会诞生多核处理器?
传统的单核处理器,在提高芯片速度时所带来的副作用很大,例如高温问题、成本问题等。
3、多核处理器的优势
通过合理的划分任务,线程可以利用多个执行核心,在单位时间内处理更多的数据。
二、内核、硬件线程、软件线程
物理内核:真正意义上的内核,每一个物理内核都是独立的处理单元。
硬件线程:使用了超线程技术(HTT)的Inter芯片,在每个物理内核上提供了多份架构状态。硬件线程又称为逻辑内核,之后文章总提到内核,都指的硬件线程
例如在一个具有2个物理内核的处理器中使用了HT技术,并且在每一个物理内核中提供了2份架构状态,就获得了4个硬件线程。这种技术成为对称多线程(SMT)它通过额外的架构状态在处理器级别对并行执行进行优化和增强。
软件线程:Windows中每个运行的程序,都成为一个进程(Process),进程在执行的过程中 会创建并运行一个或多个线程,这些线程被成为软件线程。
这个是我在自己机器上截的图。I3 CPU使用了HTT技术,因此实际的物理内核是2个,并且由于每个内核提供了2份架构状态,因此拥有4个逻辑内核。
三、交错并发与并发的概念区别:
交错并发:在单核处理器中或者内核数量不足的情况下,多线程技术会将Cpu运行时间切片,多个线程之间交叉进行操作。
并发:多个线程各自占用内核进行同时操作。
图例:
以上为多核编程的基本概念,今天博客暂时写到这里停笔了。由于第一次写,很多东西很难落到笔头上。
无奈之下参考/剽窃了:《百度百科——多核处理器》 《C#并行编程高级教程》 中的原文,觉得晦涩难懂的朋友麻烦多多提些建议,一起提升
。
这个系列中的所有博客会随着我对多核编程的理解加深而不断重构,并且会修正某些因为理解偏差造成的失误,谢谢大家围观……
说实话,第一次 确实很疼……