JUC--并行与并发

JUC–并行与并发

背景

  • JUC–并行与并发

  • 博主以黑马JUC进行学习

并行与并发的概念

单核cpu下,线程实际还是串行执行的。操作系统中有一组件叫做任务调度器,将cpu的时间片(windows下的时间片最小约为15毫秒)分给不同线程使用,只是由于cpu在线程间(时间片很短)的切换非常快,人类感觉是同一时间运行的。一句话:微观串行,宏观并行,

一般会将这种线程轮流使用cpu的做法称为并发,concurrent

多核cpu下,每个核(core)都可以调度运行线程,这时候线程可以是并行的。

  • 并行parallel

    • 是同一时间动手做多件事的能力
  • 并发concurrent

    • 是同一时间应对多件事的能力
  • 二者对比

    对比维度 并发(Concurrent) 并行(Parallel)
    核心逻辑 时间片切换,轮流执行 多核同时执行,无需切换
    CPU要求 单核CPU即可实现 必须多核CPU才能实现
    本质 微观串行,宏观并行(伪并行) 微观、宏观都是并行(真并行)
    通俗案例 一个人同时处理多个工作(快速切换) 多个人同时处理不同的工作
    核心目标 提高CPU利用率,应对多任务 提高任务执行效率,缩短总耗时