我是靠谱客的博主 标致帆布鞋,最近开发中收集的这篇文章主要介绍简单理解异步编程(python)和异步编程(nodejs)同步编程异步编程举个栗子同步实现异步实现运行结果分析解释拓展思维引用参考,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

同步编程

同一时间只能做一件事。python就是同步编程(当然,python也能同步)。

异步编程

同一时间可以做多件事。nodejs就是异步编程(同理,nodejs也能异步)。

举个栗子

测试文件夹test里有两个空的文本文件1.txt2.txt

├─test
├─1.txt
├─2.txt

我想完成两个任务:

  • 1.txt写入hello
  • 删除2.txt文件

同步实现

# 导入模块
import os
# 写入操作
with open('1.txt', 'w') as f:
f.write('hello')
print('写入完成')
# 删除操作
os.unlink('2.txt')
print('删除完成')
'''输出结果
写入完成
删除完成
'''

异步实现

// 导入模块
const fs = require('fs')
// 写入操作
fs.writeFile('1.txt', 'hello', (err) => {
if (err) throw err
console.log('写入完成')
})
// 删除操作
fs.unlink('2.txt', (err) => {
if (err) throw err
console.log('删除完成')
})
/* 输出结果
删除完成
写入完成
*/

运行结果

  • python的代码先输出写入完成,再输出删除完成
  • nodejs的代码先输出删除完成,后输出写入完成

分析解释

python是同步编程,同一时间只能做一件事。python的代码按顺序从上到下执行,先执行写入操作,再打印输出,然后执行删除操作,最后打印输出。也就是说python下一步的代码必须等待上一步的代码执行完毕后才能执行,所以python的代码先输出写入完成,再输出删除完成

nodejs是异步编程,同一时间可以做多件事。nodejs的代码同时执行写入操作和删除两个操作,这两个任务之间无需等待。此外,删除操作直接删就完事了,而写入操作要复杂一些,写入操作的时间要比删除操作的时间长,所以nodejs的代码先输出删除完成,而后输出写入完成

拓展思维

很明显,对于举的这个栗子来说,nodejs代码的执行效率要比python代码的执行效率高,因为nodejs是同时执行两个任务,而python是等待一个任务完成后再执行下一个任务。

这里的文件写入和文件删除两个操作之间互不影响,但很多时候,多个任务或事件之间具有关联性,也就是说你必须先处理任务一,等待任务一完成后你才能处理任务二,异步编程就发挥不出优势了,还得同步编程。

因此,采用同步编程还是异步编程还得看实际情况。如果你的项目是爬虫这种批量而又互斥的任务时,采用异步编程效率要高很多。但,如果涉及到流程控制类的任务时,还是需要同步编程。

引用参考

https://nodejs.org/api/fs.html
https://docs.python.org/3/library/os.html

最后

以上就是标致帆布鞋为你收集整理的简单理解异步编程(python)和异步编程(nodejs)同步编程异步编程举个栗子同步实现异步实现运行结果分析解释拓展思维引用参考的全部内容,希望文章能够帮你解决简单理解异步编程(python)和异步编程(nodejs)同步编程异步编程举个栗子同步实现异步实现运行结果分析解释拓展思维引用参考所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部