美文网首页并发
Java并发(一)并发基本概念

Java并发(一)并发基本概念

作者: 黄金矿工00七 | 来源:发表于2018-06-24 03:56 被阅读11次

    最近复习java并发的知识,在这之前,我们先了解一下java中的一些概念:

    • 我们常说同步与异步。通俗来说他们描述的是在异步环境下(多个线程时不相干的),并发线程之间的访问共享资源时通过消息通知的协作方式。
      • 同步: 在一个线程对共享资源进行访问时,其他线程需要等待,可能会阻塞,在后面线程状态中再详细谈。
      • 异步:在一个线程对共享资源进行访问时,其他线程在等待的时间,可以去做自己的事情。
      • java中提供的同步机制:wait/notify、Synchronized关键字、volatile、并发容器、、基于AQS的同步工具类(可重入锁等)、ThreadLocal、原子类等
    • 再来说一下 并行与串行:
      • 并行: 多个任务是同时执行的
      • 串行: 多个任务是顺序执行的
        关注的是任务的执行方式,在多线程中,串行的任务一个一个执行,直到结束。并行中多个任务在同一时间点执行。
        最后来说一下并发,通俗来说,就是多个任务在同一个时间段内去执行,要与并行的同一时间点区别开来,举个例子,并行:运动会,十名运动员同时在自己的跑道上奔跑;并发:运动会上,十名运动员接力跑。
        来点理论的:
    • 并发与并行其实都是多个任务一起执行,但是并行更侧重的是一个时间点,也就是说多个任务是同时执行的,是物理上的同时执行,要求多个CPU核心,当只有一个cpu核心时,是无法实现并行 的,而并发是逻辑上的同时运行,侧重的是一个时间段,在一个核心上多个任务交替执行,但是他们可以交替获得时间片,造成并行的错觉。

    相关文章

      网友评论

        本文标题:Java并发(一)并发基本概念

        本文链接:https://www.haomeiwen.com/subject/bozdyftx.html