一、怎么理解异步和同步
- 从方法的角度去理解:
- 需要等待结果返回,才能继续运行就是
同步
- 不需要等待结果返回,就能继续运行就是
异步
- 需要等待结果返回,才能继续运行就是
- 注意:同步在多线程中还有另外一层意思:
是让多个线程步调一致
。
同步调用
- 同步调用意味着在调用一个函数或方法时,调用者会等待该函数或方法执行完成并返回结果后,才会继续执行后续的代码。在多线程环境中,如果线程A调用了一个同步方法,那么线程A会在该方法执行完成之前被阻塞,无法继续执行其他任务。
- 同步调用的特点是:
- 调用者会等待被调用者执行完成。
- 保证了任务执行的顺序性和结果的确定性。
- 但可能会导致线程阻塞,降低系统的并发性能。
异步调用
-
异步调用则不同,当调用一个异步函数或方法时,调用者不会等待该函数或方法执行完成,而是立即返回并继续执行后续的代码。被调用的函数或方法会在后台线程中执行,当执行完成后,通常会通过回调函数、Future/Promise对象或其他机制来通知调用