亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中使用多線程改進flask案例

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

前言:

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

與進程的區(qū)別:

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

簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.

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

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

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

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

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

下面來介紹具體的多線程改進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.多進程

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

相關(guān)文章

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

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

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

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

    在分布式系統(tǒng)中,確保系統(tǒng)的高可用性是至關(guān)重要的,本文將深入探討如何使用Python實現(xiàn)雙進程自我保護機制,以應(yīng)對單點故障,確保系統(tǒng)穩(wěn)定運行,將通過詳實的示例代碼,介紹雙進程自我保護的原理、實現(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)進行了匯總,不求嚴格精準,但求簡單易懂
    2021-11-11
  • 在DOS界面如何運行python的py文件

    在DOS界面如何運行python的py文件

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

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

    Python語言使用金庸小說文本庫,對文本進行預(yù)處理,然后使用Keras庫中的LSTM模型創(chuàng)建和訓練了模型,根據(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類型,下文更多詳細內(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ī)律,更加輕松地理解和探索信息,本文通過代碼圖片詳細介紹了Python數(shù)據(jù)可視化,感興趣的小伙伴可以參考閱讀
    2023-04-04

最新評論