java知识点:并发与并行

并行(parallellism)和 并发(concurrency)的区别是:

    解释一:并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔发生。

    解释二:并行是指在不同实体上的多个事件;并发是指在同一实体上的多个事件

    解释三:并行是指在多台处理器上同时处理多个任务;并发是指在一台处理器上“同时”处理多个任务。

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

    例子一:假设一个有三个学生需要辅导作业,帮每个学生辅导完作业是一个任务
            并发:老师甲先给学生A去讲思路,A听懂了自己书写过程并且检查,而甲老师在这期间直接去给B讲思路,讲完思路再去给                        C讲思路,让B自己整理步骤。这样老师就没有空着,一直在做事情。
            并行:直接让三个老师甲、乙、丙三个老师“同时”给三个学生辅导作业。

    例子二:假设吃饭的时候电话来了
            并发:你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭。
            并行:你吃饭吃到一半,电话来了,你一边打电话一边吃饭。

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

    应用程序可以是并发的,但不是并行的,这意味着它可以同时处理多个任务,但是没有两个任务在同一时刻执行(交替执行)。
    应用程序可以是并行的,但不是并发的,这意味着它同时处理多核CPU中的任务的多个子任务。
    应用程序可以即不是并行的,也不是并发的,这意味着它一次一个地处理所有任务(顺序执行)。
    应用程序可以即是并行的也是并发的,这意味着它同时在多核CPU中同时处理多个任务。

你可能感兴趣的:(Java)