Python编程:trio模块异步/等待本地I/O库

简介: Python编程:trio模块异步/等待本地I/O库

github: https://github.com/python-trio/trio

文档: https://trio.readthedocs.io/en/latest/tutorial.html


An async/await-native I/O library for humans and snake people

安装

pip install trio

代码示例


# -*- coding: utf-8 -*-
import trio
import time
# 计时器
def timer(func):
    def inner(*args):
        start = time.time()
        ret = func(*args)
        end = time.time()
        print("{} time: {}".format(func.__name__, end - start))
        return ret
    return inner
############## 同步执行 ######################
def sync_add(x, y):
    time.sleep(2)
    print("sync_add: {}".format(x + y))
def sync_multiply(x, y):
    time.sleep(2)
    print("sync_multiply: {}".format(x * y))
@timer
def sync_func():
    sync_add(1, 1)
    sync_multiply(1, 1)
sync_func()
############## 异步执行 ######################
async def async_add(x, y):
    await trio.sleep(2)
    print("async_add: {}".format(x + y))
async def async_multiply(x, y):
    await trio.sleep(2)
    print("async_multiply: {}".format(x * y))
async def async_func():
    async with trio.open_nursery() as nursery:
        nursery.start_soon(async_add, 1, 1)
        nursery.start_soon(async_multiply, 1, 1)
@timer
def run_async():
    trio.run(async_func)
run_async()

执行结果


         

相关文章
|
1天前
|
存储 数据处理 开发者
深入浅出:Python编程基础与实战技巧
【9月更文挑战第32天】本文将引导读者从零开始,掌握Python编程语言的核心概念,并通过实际代码示例深入理解。我们将逐步探索变量、数据结构、控制流、函数、类和异常处理等基本知识,并结合实用案例,如数据处理、文件操作和网络请求,提升编程技能。无论您是初学者还是有一定经验的开发者,这篇文章都能帮助您巩固基础,拓展视野。
|
4天前
|
JSON API 数据格式
30天拿下Python之requests模块
30天拿下Python之requests模块
17 7
|
1天前
|
数据采集 机器学习/深度学习 人工智能
Python编程之旅:从基础到精通
【9月更文挑战第32天】本文将带你进入Python的世界,从基础语法到高级特性,再到实战项目,让你全面掌握Python编程技能。无论你是初学者还是有一定基础的开发者,都能在这篇文章中找到适合自己的学习路径和方法。让我们一起踏上Python编程之旅,开启一段充满挑战和乐趣的学习历程吧!
|
1天前
|
调度 开发者 网络架构
探索Python中的异步编程:深入理解asyncio库
【9月更文挑战第32天】在现代软件开发中,异步编程已成为提升性能和响应性的关键策略之一。本文将深入探讨Python的asyncio库,一个强大的异步I/O框架,它允许开发者编写单线程并发代码,同时处理多个任务而无需复杂的多线程或多进程编程。通过本文,你将学习到如何利用asyncio来构建高效、可扩展的应用程序,并了解其背后的原理和设计哲学。
7 2
|
4天前
|
人工智能 数据可视化 搜索推荐
Python异常模块与包
Python异常模块与包
|
3天前
|
数据挖掘 Python
【Python】应用:pyproj地理计算库应用
这篇博客介绍了 `pyproj` 地理计算库的应用,涵盖地理坐标系统转换与地图投影。通过示例代码展示了如何进行经纬度与UTM坐标的互转,并利用 `pyproj.Geod` 计算两点间的距离及方位角,助力地理数据分析。 安装 `pyproj`:`pip install pyproj`。更多内容欢迎关注本博客,一起学习进步! Pancake 🍰 不迷路。😉*★,°*:.☆( ̄▽ ̄)/$:*.°★* 😏
|
4天前
|
存储 开发者 Python
探索Python编程的奥秘
【9月更文挑战第29天】本文将带你走进Python的世界,通过深入浅出的方式,解析Python编程的基本概念和核心特性。我们将一起探讨变量、数据类型、控制结构、函数等基础知识,并通过实际代码示例,让你更好地理解和掌握Python编程。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到新的启示和收获。让我们一起探索Python编程的奥秘,开启编程之旅吧!
|
3天前
|
Linux Python Windows
一个Python模块Pendulum的问题
一个Python模块Pendulum的问题
|
4天前
|
数据挖掘 索引 Python
Python数据挖掘编程基础3
字典在数学上是一个映射,类似列表但使用自定义键而非数字索引,键在整个字典中必须唯一。可以通过直接赋值、`dict`函数或`dict.fromkeys`创建字典,并通过键访问元素。集合是一种不重复且无序的数据结构,可通过花括号或`set`函数创建,支持并集、交集、差集和对称差集等运算。
14 9
|
4天前
|
Python
Python编程的循环结构小示例(二)
Python编程的循环结构小示例(二)
下一篇
无影云桌面