一、什么是并发
先看“科普中国”给出的官方解释。并发在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
通俗来讲,并发就是指同一时间间隔内发生两个或多个事件。 且并发是在同一实体上的多个事件。
并发编程可以提高计算机系统的效率和性能。那么操作系统是如何实现这种并发的呢?
现在我们的操作系统无论是Windows、Linux还是MacOS其实都是多用户多任务分时操作系统,用户可以同时干多件事情。
但对于单核CPU来说,同一时间只能干一件事情。为了看起来像同时干多件事,分时操作系统把CPU的时间划分为长短基本相同的时间区间,也就是我们说的时间片
,通过操作系统的管理,把这些时间片一次轮流的分配给各个用户使用。
如果一个作业在时间片结束之前还没有完成,那么改作业就被暂停下来,放弃CPU,等待下一轮循环再继续做,这时的CPU则被分配给另一个作业去使用。
由于计算机的处理速度很快,只要时间片的间隔取得适当,那么一个用户作业从用完分配给他的时间,到下一次轮转获得的时间,中间的间隔会让用户察觉不出来,好像整个系统由他独占似的。所以在单核CPU中,我们看起来同时干了多见事,其实是通过CPU时间轮转并发完成的。
二、什么是并行
先看“科普中国”给出的官方解释。并行在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。
通俗来讲,并行是指同一时刻内发生两个或多个事件。 并行是在不同实体上的多个事件 。当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行。
三、并行与并发的区别
1、从时间上来说:并发是指在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行);而并行,无论宏观还是微观,程序都是一起执行的。
2、从资源分配来说,并发是多个任务指定多个线程,同时竞争同一个资源,有强烈的竞争;而并行没有强烈竞争,各自执行各自的。
3、从任务处理来说,并发是一个CPU处理器同时处理多个线程任务;并行是多个CPU处理器同时处理多个线程任务。
四、线程和进程的区别
操作系统中的进程和线程是并发编程的基本单位。
进程是程序的执行实例,每个进程都拥有自己的内存空间和系统资源。
线程是进程的子集,它共享进程的系统资源,并在进程内部执行代码。通过使用多个线程,可以在同一时间内执行多个任务。
标签:java,多个,并行,----,并发,初识,线程,进程,CPU From: https://www.cnblogs.com/nliu/p/17576217.html