3.同步方法和异步方法的区别及意义

3.同步方法和异步方法的区别及意义


3.1 题目

同步方法和异步方法的区别是什么?异步编程是什么意思?对于我们来说,什么时候需要使用异步编程?(至少说出3种)


3.2 深入解析

同步方法和异步方法的区别:

  • 同步方法
    当一个方法被调用时,调用者需要等待该方法执行完毕后返回才能继续执行。

  • 异步方法
    调用后不必在调用点一直阻塞到整段逻辑跑完;后续工作由运行时调度(如 I/O 完成回调、Task 续跑、Unity 协程分步执行等)。注意:异步不等于「每次调用都新建一个 OS 线程」。

异步编程的意义:

异步编程是指在日常开发中,将一些不需要立即得到结果且耗时的逻辑设置为异步执行的编程方式。它的意义在于提高程序的运行效率,避免由于复杂逻辑带来的线程阻塞,从而提升系统的响应性和性能。

什么时候需要使用异步编程:

  1. 复杂逻辑计算
    比如寻路算法等复杂计算任务,这些任务可能会耗费较长时间,使用异步编程可以让主线程不被阻塞,保持系统的响应性。

  2. 网络通信
    在进行网络下载、网络通讯等操作时,由于网络请求可能会有一定的延迟,使用异步编程可以避免阻塞主线程,提高系统的并发性和网络通信效率。

  3. 资源加载
    在进行大量资源加载时,如加载大型纹理、模型等资源,这些操作可能会消耗较长的时间,使用异步加载可以让主线程保持流畅,提升用户体验。

还可包括磁盘读写、数据库访问等耗时操作。

异步编程的主要目的是提高程序的并发性和性能,使得程序能够更高效地利用系统资源,处理各种耗时操作,从而提升整体的系统响应速度和用户体验。


3.3 答题示例

“同步方法调用时会阻塞调用者直到执行完成;异步方法调用时立即返回,真正的工作在后台线程或协程中继续执行。异步编程能防止主线程卡顿,常见使用场景:

  1. 复杂计算(如路径寻路、物理运算)避免帧率下降;
  2. 网络请求(HTTP 下载、Socket 通信)防止界面假死;
  3. 资源加载(大纹理、模型、音频文件)保持 UI 流畅;
  4. 文件 I/O(读写磁盘、数据库操作)提升响应速度。”

3.4 关键词联想

  • 同步阻塞 vs 异步立即返回
  • 后台线程 / Task / Coroutine
  • 非阻塞主线程
  • 复杂计算
  • 网络请求
  • 资源异步加载
  • 文件 I/O
  • 提升响应性


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏