Python的asyncio 多线程

news2025/1/15 23:22:12

  --  多线程、进程、协程是什么就不讲了,(就是你理解的一边呼吸,一边看文章)

仅解决问题的话,下边两篇不用看,

Python 中的 async await 概念-CSDN博客

再深一点的看这个

Python中的多线程、进程、协程、threading、asyncio-CSDN博客



我们这里需求很简单,就是让2个方法都运行!!



这里要用的就是asyncio 库

我们这里要让 loop_func 和 my_func 同时执行,需要3步:

 

第一步,把2个方法前边都加上 async  声明为特殊的func(咱也不道能不能叫多线程方法,问就是特殊不一样)。

第二步,在2个func中各自加 一个锚点 await , 这个就是标志运行到这里就可以执行其他应用了。(这个就很重要)

第三步,创建任务,用loop 执行起来。


   ---------------------------


那么就这么写:

完整代码如下:


import time
import asyncio

if __name__ == '__main__':

# 定义func 1
    async def loop_func():
        while True:
            for i in range(0,100):
                print("this is loop func runing----",i)

                # 整个锚点
                await asyncio.sleep(3)

# 定义另一个func

    async def my_func():
        print("this is my_func running...")
        while True:
            for i in range(0,100):
                print("this is my_func runing----",i)

                # 再整个锚点
                await asyncio.sleep(3)

# 搞个task 任务, run起来

    loop = asyncio.get_event_loop()
    tasks = [
        my_func(),
        loop_func(),
    ]
    loop.run_until_complete((asyncio.gather(*tasks)))

其中绿色的是关键句子。

就这么简单,之前因为循环体没加锚点,就高低没有并行起来, 浏览器都查冒烟了没找到问题,最后还得是神奇海螺啊! 艹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue.js+SpringBoot开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

【项目设计】基于Httplib和Mysql的视频播放

项目源码(绝对可以直接运行) 一、项目介绍 1. 对视频播放系统的认识 搭建视频共享播放服务器,可以让所有人通过浏览器访问服务器,实现视频的上传查看,以及管理并播放的功能。主要是完成服务器端的程序业务功能的实现…

腾讯云轻量4核8G12M服务器性能如何?价格感人

腾讯云轻量4核8G12M服务器配置446元一年,646元12个月,腾讯云轻量应用服务器具有100%CPU性能,系统盘为180GB SSD盘,12M带宽下载速度1536KB/秒,月流量2000GB,折合每天66.6GB流量,超出月流量包的流…

springboot276基于JS的个人云盘管理系统的设计与实现

个人云盘管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装个人云盘管理系统软件来发挥其…

开发反应式API

开发反应式API 开发反应式API1 使用SpringWebFlux1.1 Spring WebFlux 简介1.2 编写反应式控制器 2 定义函数式请求处理器3 测试反应式控制器3.1 测试 GET 请求3.2 测试 POST 请求3.3 使用实时服务器进行测试 4 反应式消费RESTAPI4.1 获取资源4.2 发送资源4.3 删除资源4.4 处理错…

大话设计模式——7.抽象工厂模式(Abstract Factory Pattern)

1.介绍 抽象工厂模式是工厂模式的进一步优化,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。属于创建型模式。 UML图: 2.示例 车辆制造工厂,不仅可以制造轿车也可以用来生产自行车。 1)Abs…

【技术类-02】python实现docx段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”

作品展示 背景需求: 制作周计划时,需要将周计划docx内所有的表格里的手动换行符(软回车)”变成“段落标记(硬回车)”, 全部改成段落标记(硬回车) 但是19份docx每份都要打…

人工智能入门学习笔记1:什么是人工智能

一、什么是人工智能 人工智能(Artificial Intelligence),是一个以计算机科学(Computer Science)为基础,由计算机、心理学、哲学等多学科交叉融合的交叉学科、新兴学科,研究、开发用于模拟、延伸和扩展人的智能的理论、…

day06、07-MySQL

文章目录 一、MySQL概述1.1 安装1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 二. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创建数据库2.2.3 使用数据库2.2.4 删除数据库 2.3 图形化工具2.3.1 介绍2.3.2 安装2.3.3 使用2.2.3.1 连接数据库…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 网络

为了支持网络协议栈的多个实例,Linux 在网络协议栈中引入了网络命名空间。这些独立的协议栈被隔离到不同的命名空间中,处于不同命名空间中的网络协议栈是完全隔离的,彼此无法通信。通过对网络资源的隔离,就能在一台宿主机上虚拟多…

【ACW 服务端】页面操作Java增删改查代码生成

版本: 1.2.2-JDK17-SNAPSHOT 项目地址:wu-smart-acw 演示地址:演示地址 admin/admin Java增删改查代码生成 找到对应菜单 选择你需要的数据实例 选择数据库 选择数据库表 选择客户端(如果是本地ACW服务代码启动默认注册上的客户端ID是…

错误:npm ERR! code CERT_HAS_EXPIRED 解决

问题: 在打开项目用npm install安装依赖时报错:npm ERR! code CERT_HAS_EXPIRED如下图: 原因: 说明正在尝试访问的npm registry 淘宝npm镜像源 的SSL证书已经过期,导致无法建立安全连接。 解决: 配置不…

深度学习基础知识之Atrous卷积(空洞卷积)

太久不看代码确实生疏了,盯着一堆不同的dilation,不知道有什么作用,论文中说是Atrous卷积,原来就是空洞卷积的意思。 Dilated/Atrous Convolution 空洞卷积(膨胀卷积/扩张卷积) 空洞卷积是一种不增加参数量…

2024 Meetup地区组织者招募ing!| 共赴IvorySQL城市行

IvorySQL每一次线下活动,都离不开背后默默付出及用心策划的地区组织者。是他们,让我们的相聚变得更加有意义,让我们的交流更加深入。每次看到大家在活动现场热情洋溢的面孔,听到大家对IvorySQL的喜欢和期待,我们都感到…

CSS:过渡动画 (Transition)与关键帧动画(Keyfram)

一、过渡动画 (Transition) 1.简单介绍 Transition能为样式的变化提供过渡效果,例如在下面的代码中: .main {width: 300px;height: 100px;background-color: #d26f6f;}.main:hover {width: 300px;height: 200px;background-color: #5e3e3e;transition:…

vscode 将已修改代码提交推送git时一直转圈也没有反馈

新安装的vscode 将已修改代码提交推送git时一直转圈也没有反馈 第一步 打开设置 第二步 搜索use Editor点击下面得git 第三步 将use Editor As commit input取消勾选 再次进行提交即可

【消息队列开发】 实现内存加载

文章目录 🍃前言🌳实现思路🚩读取消息长度🚩读取相应长度的消息🚩进行反序列化🚩判定是否有效🚩加入有效消息🚩收尾工作🚩代码实现 ⭕总结 🍃前言 本次开发目…

Ansible非标记语言YAML与任务剧本Playbook

前言 上篇介绍了 Ansible 单模块(AD-Hoc)的相关内容Ansible自动化运维Inventory与Ad-Hoc-CSDN博客,Ad-Hoc 命令是一次性的、即时执行的命令,用于在远程主机上执行特定任务,这些命令通常用于快速执行简单的任务。当需要…

二分查找注意事项

目录 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细节处理上有所不同 2左闭右闭情况 3左闭右开 4总结: 1解题思路:首先二分查找分为左闭右闭和左闭右开两种情况,二种情况在细…

Go-知识sync map

Go-知识sync map 1. 用法1.1 声明1.2 增删改查1.3 增强操作 2. sync map 使用注意2.1 多读少写2.2 类型安全风险2.3 不能拷贝和传递 3. 实现原理3.1 数据结构3.2 read表数据结构3.3 entry 的数据结构3.4 sync map 的结构图3.5 插入数据3.6 查找数据3.7 再次插入3.8 删除数据 4.…