并发并行和同步异步

并发和并行

并发

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

并行

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

同步和异步

同步

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

异步

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

参考文章:

发布了42 篇原创文章 · 获赞 10 · 访问量 4615

猜你喜欢

转载自blog.csdn.net/qq_41918771/article/details/104234758