异步的原理已经在前面的文章讲过,本文主要比较同步与异步的差异;使用一个模拟下载文件的案例,比较同步与异步在效率上的差异。
1、使用同步的方式下载文件
从程序执行的顺序上可以看出,同步下载文件时会按照顺序进行下载,如果遇到了IO阻塞;程序暂停,等待IO阻塞结束,继续执行程序。
在这个案例中,模拟下载5个文件并阻塞程序1秒,使用同步下载时总共用了5.06秒。
2、使用异步的方式下载文件
异步程序的执行顺序则完全不一样,当程序遇到IO阻塞时,程序会跳到另外的任务继续执行;当被阻塞的任务可以继续执行时,程序会跳回原来的位置继续往下执行,从效率上看异步比同步要快很多。
在这个案例中,同样也是模拟下载5个文件并阻塞程序1秒,使用异步下载总共用了3.04秒。
通过简单的案例已经看出异步的效率;
本文中的案例仅仅是下载5个文件,如果是几十万或几百万个文件同时下载,会更明显感受到异步的效率。
如果是异步+多线程,那绝对是“我一秒钟几十万,分分钟几百万”。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。