首页 > 其他分享 >FastAPI之阻塞式io和非阻塞式io

FastAPI之阻塞式io和非阻塞式io

时间:2024-07-05 22:08:54浏览次数:10  
标签:请求 FastAPI 阻塞 io print bye hello

import time
import asyncio
from fastapi import FastAPI

app = FastAPI()

'''
并发两个请求:阻塞式io,uvicorn开启的一个线程无法同时执行两个请求,只能一个完成再执行另一个
请求1:
    hello
    bye
请求2:
    hello
    bye
'''
@app.get('/1')
async def t1():
    print('hello')
    time.sleep(5)
    print('bye')

'''
并发两个请求:非阻塞式io,uvicorn开启的一个线程遇到非阻塞io,协程会切换到另一个请求上执行,出现如下效果
请求1:
    hello
请求2:
    hello
请求1:
    bye
请求2:
    bye
'''
@app.get('/2')
async def t2():
    print('hello')
    await asyncio.sleep(5)
    print('bye')

'''
并发两个请求:阻塞式io,使用的是def,会开启两个线程执行视图函数,所以会出现如下效果
请求1:
    hello
请求2:
    hello
请求1:
    bye
请求2:
    bye
'''
@app.get('/3')
def t3():
    print('hello')
    time.sleep(5)
    print('bye2')
    
'''


'''

标签:请求,FastAPI,阻塞,io,print,bye,hello
From: https://www.cnblogs.com/liuqingzheng/p/18286685

相关文章

  • 【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
    问题描述iOS Objective-C应用,连接AzureStorageAccount,根据官网Example代码,在没有关闭StorageAccount的匿名访问时,程序正常运行。但是,只要关闭了匿名访问,上传blob到Container中,就会报错:Publicaccessisnotpermittedonthisstorageaccount  问题解答查看示例......
  • autoware.universe源码略读(3.5)--perception:compare_map_segmentation/crosswalk_tra
    autoware.universe源码略读3.5--perception:compare_map_segmentation/crosswalk_traffic_light_estimatorcompare_map_segmentationcompare_elevation_map_filter_nodedistance_based_compare_map_filter_nodeletvoxel_based_approximate_compare_map_filter_nodeletvox......
  • 「杂题乱刷2」CF1454F Array Partition
    题目链接CF1454FArrayPartition解题思路我们发现显然第一个和第三个区间的值区间随着长度的增大而增大。于是我们就可以枚举第一个区间的右端点位置,然后现在问题就转化成了找到一个断点来确定第二,三个区间的长度,由于前文提到的第三个区间的值区间随着长度的增大而增大,于是我......
  • IDEA运行时报错:Application Server was not connected before run configuration stop
    求求了,有没有大佬能看到呀,马上就考试了,运行不出来真的好烦躁无力呀,我在CSDN上看到了好多解决方法,但是我用过之后依旧没能解决。这是我的tomcat和jdk版本,版本应该没有问题吧,这也是老师发给我们的版本这是我的环境变量的配置; 这是我的tomca,jdk,以及IDEA的地址;  求......
  • ios CCNetwork.m
    ////CCNetwork.h//CCFC////Createdbyxichenon11-12-23.//Copyright2011ccteam.Allrightsreserved.//#import<Foundation/Foundation.h>#include<ifaddrs.h>#include<sys/socket.h>#include<net/if.h>#defineMAC......
  • ios CCPhone.m
    ////CCPhone.h//CCFC////Createdbyxichenon11-12-16.//Copyright2011年ccteam.Allrightsreserved.//#import<Foundation/Foundation.h>#import<UIKit/UIKit.h>#import"CCConfig.h"#import"CCDepend.h"#impo......
  • Solution
    (解决方案)可行性研究报告暨设计方案-zengwenfeng.doc基本上都要300-500多页,大型【纯软件】,县级0-200万,市级项目500-1500万不等,省部级1000-10000万不等都有。本例为过往已完成项目案例目录结构。搞方案都要准备1-3个月呢。所以工作量出来,费用各地不同而已,单从人工投入......
  • Andriod SDK安装教程
    前言最简单的方式我们使用ANDROIDSTUDIO这款开发工具下载对应的AndriodSDK。可是我们如果不开发安卓,只是用它的一些SDK包的话而安装整个开发工具,就没必要了。这里讲的是用独立的命令行工具来操作。下载命令行工具点击此处进入下载页面,滑动到最下边,选择合适的系统下载,我......
  • JAVA中的IO流技术(JAVA基础)
    IO流的基础概念1.如何理解IO1.输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据)。2.输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是“写”,将数据写出到外部系统)。3.java.io包为我们提供了相关的API,实现了对所有外......
  • nodejs 安装使用ip2region - 实时精准的IP地址到区域运营商查询
    ip2region简介ip2region是一个高性能且高准确度的离线IP地址定位库和IP定位数据管理框架。它能够根据IP地址解析出对应的位置信息,包括国家、地区、省份、城市以及互联网服务提供商(ISP)。以下是ip2region的一些关键特性:高准确率:它声称有99.9%的准确率,这使得它......