1. 并发
- 多个任务交替执行,同一时刻只执行一个任务
- 在并发程序中,可以拥有两个或多个线程。在单核处理器中,这些线程交替换入或换出内存,但是这些线程是同时存在的
- 老师甲,帮学生A、B、C辅导课程(任务)
顺序执行:老师甲给学生A讲解完毕,并且等学生A写完作业才离开,然后再给学生B讲解,并且等学生B写完作业才离开,最后给学生C讲解,并且等学生C写完作业才离开
并发执行:老师甲给学生A讲解完毕离开(学生A独自完成作业),再去给学生B讲解完毕离开(学生B独自完成作业),最后给学生C讲解(学生C独自完成作业)
区别:老师讲解完毕后,学生在写作业时,老师是闲着的(假设学生不会问老师问题),所以顺序执行效率低
2. 并行
- 多个任务同时执行,同一时刻执行多个任务
- 是运行在多核处理器上的,每个线程分配一个处理器,使得这些线程可以同时执行
- 老师甲、乙、丙,分别给学生A、B、C辅导课程
3. 串行
- 执行多任务时,各任务按顺序执行
4. 同步和异步
- 同步不可以开启新的线程;是顺序执行,一个线程执行完毕才会执行下一个线程,需要等待、协调运行
- 异步可以开启新的线程,多线程是实现异步的一种的方式,线程在等待某事件的过程中可以继续做其他的事,不需要等待这一事件完成后再工作
参考:
https://www.cnblogs.com/goloving/p/9391074.html
https://blog.csdn.net/qq_26442553/article/details/78729793