这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战
并行与串行
并行和串行指的是任务的执行方式
串行处理:多个任务按照顺序执行,完成一个在执行一个。比如页面调用方法A、方法B,需要任务A执行完成之后再去执行任务B
并行处理:多个任务同时执行,异步是多任务并行的前提条件。比如调用方法A、方法B、方法C等,他们都是各自管自己的事情,无需等待谁执行完成,互不影响。
同步与异步
同步与异步指的是访问数据的方式
- 同步需要主动读写数据,读写的速度相对较慢,在读写数据的过程中还是会阻塞,执行同步任务需要用时较久的时候,代码就会阻塞;
- 异步只需要I/O操作完成的通知,并不主动读写数据,由操作系统内核完成数据的读写。
对于异步的方法,谁先返回结果是不知道的。在实际应用中,在处理异步请求的过程中,有时候往往需要它是同步的,需要等待上一个任务执行的结果。
阻塞与非阻塞
阻塞与非阻塞可以理解为进程/线程要访问的数据是否就绪,进程/线程是否需要等待。
阻塞和非阻塞是说线程或者进程在等待访问数据的时候的一个状态,阻塞是说读数据的时候需要等着,不能做其他的事情;非阻塞是说不等这个任务执行完成,可继续往下执行。
后期预告:
- 异步I/O与回调
- 事件驱动与订阅发布
- Thunk原理:解决回调陷阱的几种方式之一
- Promise原理:利用状态机机制,如何去解决异步回调的陷阱问题
- Generater原理:Generater是什么?
- Co原理:Co是什么?
- Async/await原理
- JS并行