要了解异步就需要知道DMA,就是direct memory access(直接内存访问)的意思。当进行异步操作时,拥有DMA功能的硬件在和内存进行数据交换的时候可以不消耗CPU资源,只要CPU在发起数据传输时发送一个指令,硬件就开始自己和内存交换数据,在传输完成之后硬件会触发一个中断来通知操作完成,而这些无须消耗CPU时间。因此在DOS 这样的单进程(而且无线程概念)系统中也同样可以发起异步的DMA操作。
异步调用并不是要减少线程的开销, 它的主要目的是让调用方法的主线程不需要同步等待在这个函数调用上,把操作推迟到合适的时候去处理, 从而可以让主线程继续执行它下面的代码,异步请求一般用在IO等耗时操作上,他的好处是函数调用立即返回,相应的工作线程立即返还给系统以供重用。
异步是目的,多线程只是我们实现异步的一个手段.什么是异步:异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回.实现异步可以采用多线程技术或则交给另外的进程来处理