并发和并行的理解

大家在学习多线程时,一定很疑惑什么叫做并发,什么又叫做并行呢?产生的原因是什么。

在说这个时,我们先要讲讲进程。那什么叫做进程呢?

我们都知道电脑现在一般都是多核的。以前都是单核的,可以理解为一个cpu,多核就是多个cpu。那cpu又是干什么的呢?cpu好比我人体的大脑。大脑分配我们人可以在说话的同时又可以,吃饭等。就像cpu,可以分配你既可以下载东西,又可以看电影时又可以听音乐。像音乐,看视频,下载东西都是在不同的软件完成的。也可以在同一个软件完成。那不同的软件,就代表不同的进程。那同一个软件可以干很多事,那就代表同一个进程下有很多线程在同时干不同的事。每一个线程就干独立的活。大家相互不影响。这就是多线程并行。

并发你可以这么理解,多线程共享系统的资源。并发就是多线程不共享系统的资源。

生活中的例子就是并发好比一个人同时吃3个馒头,并行好比3个人同时吃3个馒头。资源就是人,线程好比是馒头。一个人同时吃3个馒头时,肯定是这个人分别吃三个馒头,时间长肯定话费的比较长,3个人同时吃3个馒头时,肯定花费的时间比较短。

有人这么说并发是并行的假像。这句话我们怎么来看呢?例如2个线程在做同一件事,我们看似是在同时直接的。但是是一个线程在做一点的同时,另一个线程在等待上个线程做完这一点。我在做。而不是两个同时在做这一个事情。

我是初学者我明白其中的意思,但是我说的不是很明白。可以看大神们这么理解的,要想成为成为一名优秀的工程师,希望大家必须要理解的很透彻,很清晰才行。

猜你喜欢

转载自blog.csdn.net/liliping28/article/details/80635060