谈谈那些年我们装B的并发编程

时间:2022-06-12 14:11:08

谈谈那些年我们装B的并发编程

每个人对并发编程的理解会有差异,但是终极目标始终是追求尽可能高的处理性能。那么如何尽可能的提升处理性能呢?

我们可以从单核,多核,并发,并行的基础出发。首先,介绍下基础知识。

 

并行(parallelism)

并发(concurrency)

含义

是指两个或者多个事件在同一时刻发生。

是指两个或多个事件在同一时间间隔发生。

引申

并行源于系统存在多个硬件资源,如多核CPU。

从微观角度讲,还是串行,如单核CPU。

判别

如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。当系统中有多个线程,并在同一时刻有两个,或两个以上的线程在运行状态,可认为是并行系统。

如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统,即系统中同时有多个线程,可以认为是并发的情况。

 

多核

多线程

含义

多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关的资源,将它的每个执行内核作为分立的逻辑处理器。通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。

多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

然后,我们就知道该如何尽可能的提升处理性能。

1.选择多核处理器

多核处理器虽然带来了强大的计算能力,但如果无法实现程序的并行,那么,大量计算资源将被闲置,造成巨大的浪费。

2.支持并行

硬件的更新换代并不意味着目标的实现,还要着力于操作系统和应用开发。所以在开发中,要注重多核编程技术,从并行计算、共享资源分布式计算、任务分解与调度、Lock-Free编程等方面充分考虑相关问题,以便将多核处理器的性能充分发挥出来。