并发和并行
并发
指在某一时间段多个程序(任务)都是串行执行的,而不是在某一个时间点上都处于运行状态。一个时间点上只有一个程序或任务在运行。在同一时间中多个线程运行,如果系统只有一个cpu则它不可能同时进行一个以上的线程,只能对cpu运行时间进行划分,再将不同的线程安排到不同的时间中去运行。个人理解:也就是说并发是指,一段时间里运行多个程序或者是任务,但并不是同一时间运行多个程序或任务。只是在这段时间里我分开安排了任务,不同的时间cpu执行不同的程序或任务。并行
当系统有一个以上的cpu时,则有可能进行并行。一个cpu执行一个任务,另一个执行另外一个任务,另一个执行另外……。线程之间不抢占cpu的资源,可以同时进行,这种方式我们称之为并行。个人理解:是一个核执行一个,可以多核执行资源不会被互相抢占。同步和异步
同步
是指发出一个功能调用,在没有得到结果之前,该调用就不返回或继续执行后续操作。个人理解:当我执行完手里的事情才能去执行下一件,一件件的做事情。很像单线程。异步
是指发出一个功能调用后,不等待返回结果,开始后续的操作,一般通过状态、通知和回调来通知调用者。个人理解:我在吃饭的3分钟里时候看1分钟的书,听2分钟的相声。很像多线程,但还是单线程。参考文章:
并发 并行 同步 异步 多线程的区别15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行并发 并行 同步 异步 多线程 阻塞 非阻塞同步和异步的区别更多推荐
发布评论