异步和多线程有什么区别
一、异步和多线程有什么区别?
其实,异步是目的,而多线程是实现这个目的的方法。
多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。
1. 多线程中,线程需要自己创建,自己管理。而异步中,线程的创建时由线程池来管理的,当涉及到io操作时,会使用线程池中的io线程。
2. 使用多线程,系统无法自行通知我们线程是否结束,我们想要获取多线程执行后的结果,只能在主线程中阻塞。而异步通过注册一个回调函数,当任务执行完,可以主动通知我们,并且执行注册的回调。
3. 多线程中,每个线程中的任务都是同步执行的,而异步中,每个线程中的任务的顺序
学海无涯 代码作伴