欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中使用多線程改進(jìn)flask案例

 更新時間:2022年03月04日 10:00:06   作者:kuokay  
這篇文章主要介紹了使用多線程改進(jìn)flask案例,線程是指進(jìn)程內(nèi)的一個執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實體.線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高,更多具體內(nèi)容,需要的小伙伴可以參考下面文章相關(guān)資料,希望對你有所幫助

前言:

線程是指進(jìn)程內(nèi)的一個執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實體.

與進(jìn)程的區(qū)別:

  • (1) 地址空間:進(jìn)程內(nèi)的一個執(zhí)行單元;進(jìn)程至少有一個線程;它們共享進(jìn)程的地址空間;而進(jìn)程有自己獨立的地址空間;
  • (2) 資源擁有:進(jìn)程是資源分配和擁有的單位,同一個進(jìn)程內(nèi)的線程共享進(jìn)程的資源
  • (3) 線程是處理器調(diào)度的基本單位,但進(jìn)程不是.
  • (4) 二者均可并發(fā)執(zhí)行.

簡而言之,一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程.

線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。
另外,進(jìn)程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。

1.線程和進(jìn)程關(guān)系?

? 進(jìn)程就是一個應(yīng)用程序在處理機(jī)上的一次執(zhí)行過程,它是一個動態(tài)的概念,而線程是進(jìn)程中的一部分,進(jìn)程包含多個線程在運(yùn)行。

? 多線程可以共享全局變量,多進(jìn)程不能。多線程中,所有子線程的進(jìn)程號相同;多進(jìn)程中,不同的子進(jìn)程進(jìn)程號不同。

? 進(jìn)程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運(yùn)行活動,進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位.
? 線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨立運(yùn)行的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運(yùn)行中必不可少的資源(如程序計數(shù)器,一組寄存器和棧),但是它可與同屬一個進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源.
? 一個線程可以創(chuàng)建和撤銷另一個線程;同一個進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行.

下面來介紹具體的多線程改進(jìn)flask項目案例!!!

2.多線程

import flask
import json
import time
from concurrent.futures import ThreadPoolExecutor

app = flask.Flask(__name__)
pool = ThreadPoolExecutor()


def read_file():
? ? time.sleep(0.1)
? ? return "file result"


def read_db():
? ? time.sleep(0.2)
? ? return "db result"


def read_api():
? ? time.sleep(0.3)
? ? return "api result"


@app.route("/")
def index():
? ? result_file = pool.submit(read_file)
? ? result_db = pool.submit(read_db)
? ? result_api = pool.submit(read_api)

? ? return json.dumps({
? ? ? ? "result_file": result_file.result(),
? ? ? ? "result_db": result_db.result(),
? ? ? ? "result_api": result_api.result(),
? ? })


if __name__ == "__main__":
? ? app.run()

3.多進(jìn)程

import flask
from concurrent.futures import ProcessPoolExecutor
import math
import json


app = flask.Flask(__name__)


def is_prime(n):
? ? if n < 2:
? ? ? ? return False
? ? if n == 2:
? ? ? ? return True
? ? if n % 2 == 0:
? ? ? ? return False
? ? sqrt_n = int(math.floor(math.sqrt(n)))
? ? for i in range(3, sqrt_n + 1, 2):
? ? ? ? if n % i == 0:
? ? ? ? ? ? return False
? ? return True


@app.route("/is_prime/<numbers>")
def api_is_prime(numbers):
? ? number_list = [int(x) for x in numbers.split(",")]
? ? results = process_pool.map(is_prime, number_list)
? ? return json.dumps(dict(zip(number_list, results)))


if __name__ == "__main__":
? ? process_pool = ProcessPoolExecutor()
? ? app.run()

到此這篇關(guān)于使用多線程改進(jìn)flask案例的文章就介紹到這了,更多相關(guān)多線程改進(jìn)flask內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django中Aggregation聚合的基本使用方法

    Django中Aggregation聚合的基本使用方法

    這篇文章主要給大家介紹了關(guān)于Django中Aggregation聚合的基本使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python實現(xiàn)雙進(jìn)程防止單點故障實例深度探究

    Python實現(xiàn)雙進(jìn)程防止單點故障實例深度探究

    在分布式系統(tǒng)中,確保系統(tǒng)的高可用性是至關(guān)重要的,本文將深入探討如何使用Python實現(xiàn)雙進(jìn)程自我保護(hù)機(jī)制,以應(yīng)對單點故障,確保系統(tǒng)穩(wěn)定運(yùn)行,將通過詳實的示例代碼,介紹雙進(jìn)程自我保護(hù)的原理、實現(xiàn)步驟以及可能遇到的挑戰(zhàn)
    2024-01-01
  • Python數(shù)據(jù)結(jié)構(gòu)之樹的全面解讀

    Python數(shù)據(jù)結(jié)構(gòu)之樹的全面解讀

    數(shù)據(jù)結(jié)構(gòu)中有很多樹的結(jié)構(gòu),其中包括二叉樹、二叉搜索樹、2-3樹、紅黑樹等等。本文中對數(shù)據(jù)結(jié)構(gòu)中常見的樹邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)進(jìn)行了匯總,不求嚴(yán)格精準(zhǔn),但求簡單易懂
    2021-11-11
  • 在DOS界面如何運(yùn)行python的py文件

    在DOS界面如何運(yùn)行python的py文件

    這篇文章主要介紹了在DOS界面如何運(yùn)行python的py文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python使用Keras庫中的LSTM模型生成新文本內(nèi)容教程

    Python使用Keras庫中的LSTM模型生成新文本內(nèi)容教程

    Python語言使用金庸小說文本庫,對文本進(jìn)行預(yù)處理,然后使用Keras庫中的LSTM模型創(chuàng)建和訓(xùn)練了模型,根據(jù)這個模型,我們可以生成新的文本,并探索小說的不同應(yīng)用
    2024-01-01
  • Python3中的bytes類型和str類型

    Python3中的bytes類型和str類型

    這篇文章主要介紹了Python3中的bytes類型和str類型,bytes是一種比特流,他們之間的關(guān)系則是Python有個內(nèi)置函數(shù)bytes()可以將字符串str類型轉(zhuǎn)換成bytes類型,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • 詳解python日期時間處理2

    詳解python日期時間處理2

    這篇文章主要為大家介紹了python日期時間處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python FFT合成波形的實例

    Python FFT合成波形的實例

    今天小編大家分享一篇Python FFT合成波形的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python編程使用matplotlib挑鉆石seaborn畫圖入門教程

    Python編程使用matplotlib挑鉆石seaborn畫圖入門教程

    這篇文章主要為大家介紹了Python編程中使用matplotlib繪圖包來挑出完美的鉆石,本篇是seaborn包畫圖使用入門篇,有需要的朋友可以借鑒參考下
    2021-10-10
  • Python數(shù)據(jù)可視化詳解

    Python數(shù)據(jù)可視化詳解

    數(shù)據(jù)可視化是一種將龐雜抽象的數(shù)據(jù)轉(zhuǎn)化為直觀易懂的圖形的數(shù)據(jù)呈現(xiàn)技術(shù),它能幫助我們快速把握數(shù)據(jù)的分布和規(guī)律,更加輕松地理解和探索信息,本文通過代碼圖片詳細(xì)介紹了Python數(shù)據(jù)可視化,感興趣的小伙伴可以參考閱讀
    2023-04-04

最新評論