flask 多线程,python flask 多进程
本文主要介绍多线程技术改进烧瓶的案例。线程是进程中的执行单元,也是进程中可调度的实体。线程的划分尺度小于进程的划分尺度,使得多线程程序的并发性很高。更多细节可以参考下面文章中的相关资料,希望对你有所帮助。
00-1010 1.线程和进程的关系?2.多线程3。多进程前言:
线程是进程中的执行单元和可调度实体。
与进程的区别:
(1)进程中的一个执行单元的地址空间:该进程至少有一个线程;它们共享进程的地址空间;并且进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一进程中的线程共享进程的资源。(3)线程是处理器调度的基本单位,而进程不是。(4)两个过程可以同时执行。简而言之,一个程序至少有一个进程,一个进程至少有一个线程。
线程的划分规模小于进程,使得多线程程序具有高并发性。
另外,进程在执行时有独立的内存单元,多个线程共享内存,大大提高了程序的运行效率。
目录
进程是应用程序在处理器上的执行过程。这是一个动态的概念,线程是进程的一部分。一个进程包含多个正在运行的线程。
多线程可以共享全局变量,但多进程不能。在多线程中,所有子线程都有相同的进程号;在多个流程中,不同的子流程有不同的流程号。
进程是一个程序在某个数据集上运行的活动,该程序具有某些独立的功能。进程是系统中用于资源分配和调度的独立单元。
线程是进程的实体,是CPU调度和分派的基本单位,比进程小,可以独立运行。一个线程本身基本上没有系统资源,只有一些运行所必需的资源(比如一个程序计数器,一组寄存器和栈),但是它可以和属于同一进程的其他线程共享一个进程拥有的所有资源。
一个线程可以创建和取消另一个线程;同一进程中的多个线程可以并发执行。
下面介绍一下具体的多线程改进flask项目案例!
1.线程和进程关系?
进口烧瓶
导入json
导入时间
从concurrent.futures导入线程池执行器
app=烧瓶。烧瓶(__name__)
pool=ThreadPoolExecutor()
def读取文件():
时间.睡眠(0.1)
返回“文件结果”
定义读取数据库():
时间.睡眠(0.2)
返回“数据库结果”
def read_api():
时间.睡眠(0.3)
返回“api结果”
@app.route(/)
定义索引():
结果文件=池.提交(读取文件)
结果数据库=池.提交(读取数据库)
结果_api=pool.submit(read_api)
返回json.dumps({
结果文件 :结果文件.结果(),
结果数据库 :结果数据库.结果(),
结果_api:结果_api.result(),
})
if __name__==__main__:
app.run()
2.多线程
进口烧瓶
从concurrent.futures导入进程池执行器
导入数学
导入json
app=烧瓶。烧瓶(__name__)
定义是_prime(n):
如果编号为2:
返回False
如果n==2:
返回True
如果n % 2==0:
返回False
sqrt _ n=int(math . floor(math . sqrt(n)))
对于范围(3,sqrt_n 1,2):中的I
如果n % i==0:
返回False
返回True
@app.route(/is_prime/numbers )
定义api_is_prime(数字):
number _ list=[int(x)for x in numbers . split(,)]
results=process _ pool . map(is _ prime,number_list)
返回JSON . dumps(dict(zip(number _ list,results)))
if __name__==__main__:
process _ pool=ProcessPoolExecutor()
app.run()
这就是这篇关于用多线程改进flask case的文章。关于用多线程改进flask的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。