天天看点

java多线程之并行和并发

版权声明:本文为博主原创文章,未经博主允许不得转载。    https://blog.csdn.net/yangying496875002/article/details/73480337

1.并发和并行是即相似又有区别(微观概念)

并行:指两个或多个事件在同一时刻点发生;

并发:指两个或多个事件在同一时间段内发生。

------------------------------------------------------------------------------------------------

在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单CPU系统中,每一时刻却仅能有一道程序执行(时间片),故微观上这些程序只能是分时地交替执行。

倘若计算机系统中有多个CPU,则这些可以并发执行的程序便可被分配到多个处理器上,实现多任务并行执行,即利用每个处理器来处理一个可并发执行的程序,这样,多个程序便可以同时执行,因为是微观的,所以大家在使用电脑的时候感觉就是多个程序是同时执行的。所以,大家买电脑的时候喜欢买“核”多的,其原因就是“多核处理器”电脑可以同时并行地处理多个程序,从而提高了电脑的运行效率。单核处理器的计算机肯定是不能并行的处理多个任务的,只能是多个任务在单个CPU上并发运行。

同理,线程也是一样的,从宏观角度上理解线程是并行运行的,但是从微观角度上分析却是串行运行的,即一个线程一个线程的去运行,当系统只有一个CPU时,线程会以某种顺序执行多个线程,我们把这种情况称之为线程调度。

-------------------------

时间片即CPU分配给各个程序的运行时间(很小的概念).

java多线程之并行和并发

继续阅读