并发并行和同步异步的概念

文章目录

  • 并发和并行
    • 并发
    • 并行
  • 同步和异步
    • 同步
    • 异步

并发和并行

并发

  • 指在某一时间段多个程序(任务)都是串行执行的,而不是在某一个时间点上都处于运行状态。一个时间点上只有一个程序或任务在运行。在同一时间中多个线程运行,如果系统只有一个cpu则它不可能同时进行一个以上的线程,只能对cpu运行时间进行划分,再将不同的线程安排到不同的时间中去运行。
  • 个人理解:也就是说并发是指,一段时间里运行多个程序或者是任务,但并不是同一时间运行多个程序或任务。只是在这段时间里我分开安排了任务,不同的时间cpu执行不同的程序或任务。

并行

  • 当系统有一个以上的cpu时,则有可能进行并行。一个cpu执行一个任务,另一个执行另外一个任务,另一个执行另外……。线程之间不抢占cpu的资源,可以同时进行,这种方式我们称之为并行。
  • 个人理解:是一个核执行一个,可以多核执行资源不会被互相抢占。

同步和异步

同步

  • 是指发出一个功能调用,在没有得到结果之前,该调用就不返回或继续执行后续操作。
  • 个人理解:当我执行完手里的事情才能去执行下一件,一件件的做事情。很像单线程。

异步

  • 是指发出一个功能调用后,不等待返回结果,开始后续的操作,一般通过状态、通知和回调来通知调用者。
  • 个人理解:我在吃饭的3分钟里时候看1分钟的书,听2分钟的相声。很像多线程,但还是单线程。

参考文章:

  • 并发 并行 同步 异步 多线程的区别
  • 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行
  • 并发 并行 同步 异步 多线程 阻塞 非阻塞
  • 同步和异步的区别

你可能感兴趣的:(多线程,java,python,并发编程,设计模式)