异步的概念
-
定义
- 异步(Asynchronous)是一种编程模式,与同步(Synchronous)相对。在同步编程中,程序按照顺序一步一步地执行任务。一个任务必须等待前一个任务完成后才能开始。而异步编程允许程序在等待某个长时间运行的任务(如网络请求、文件读取等)完成时,继续执行其他任务。
- 例如,在同步模式下,如果有一个函数是从网络上下载一个大型文件,在文件下载完成之前,程序会一直停留在这个下载函数中,无法执行其他操作。但在异步模式下,当开始下载文件后,程序可以去做其他事情,比如更新用户界面或者处理其他数据,等文件下载完成后再进行后续处理。
-
应用场景
- 网络请求:当从服务器获取数据时,如通过 HTTP 请求获取网页内容、获取 API 接口数据等。如果使用同步方式,整个程序会在等待服务器响应的过程中 “冻结”。而异步方式可以让程序在等待服务器响应的同时,去处理其他任务,比如响应用户的其他操作,如点击按钮、滚动页面等。
- 文件读写:读取或写入大型文件可能需要较长时间。异步操作可以让程序在文件操作的同时执行其他功能,比如在读取一个大型日志文件的同时,继续响应用户查询日志的请求。