线程同步和异步的区别和联系图片

后端 (29) 2023-11-30 21:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说线程同步和异步的区别和联系图片,希望能够帮助你!!!。

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第99篇文章,第三阶段的课程:Python进阶知识:用一个简单的案例说明同步与异步之间的区别,以及异步的效率。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第1张

异步的原理已经在前面的文章讲过,本文主要比较同步与异步的差异;使用一个模拟下载文件的案例,比较同步与异步在效率上的差异。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第2张

1、使用同步的方式下载文件

从程序执行的顺序上可以看出,同步下载文件时会按照顺序进行下载,如果遇到了IO阻塞;程序暂停,等待IO阻塞结束,继续执行程序。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第3张

在这个案例中,模拟下载5个文件并阻塞程序1秒,使用同步下载时总共用了5.06秒。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第4张

2、使用异步的方式下载文件

异步程序的执行顺序则完全不一样,当程序遇到IO阻塞时,程序会跳到另外的任务继续执行;当被阻塞的任务可以继续执行时,程序会跳回原来的位置继续往下执行,从效率上看异步比同步要快很多。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第5张

在这个案例中,同样也是模拟下载5个文件并阻塞程序1秒,使用异步下载总共用了3.04秒。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第6张

通过简单的案例已经看出异步的效率;

本文中的案例仅仅是下载5个文件,如果是几十万或几百万个文件同时下载,会更明显感受到异步的效率。

如果是异步+多线程,那绝对是“我一秒钟几十万,分分钟几百万”。

线程同步和异步的区别和联系图片_https://bianchenghao6.com/blog_后端_第7张

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。