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

Python queue隊(duì)列原理與應(yīng)用案例分析

 更新時(shí)間:2019年09月27日 10:59:48   作者:以夢(mèng)為馬越騎越傻  
這篇文章主要介紹了Python queue隊(duì)列原理與應(yīng)用,結(jié)合具體案例形式分析了Python queue隊(duì)列的原理、功能、實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Python queue隊(duì)列原理與應(yīng)用。分享給大家供大家參考,具體如下:

作用:

   解耦:使程序直接實(shí)現(xiàn)松耦合,修改一個(gè)函數(shù),不會(huì)有串聯(lián)關(guān)系。

   提高處理效率:FIFO?。健‖F(xiàn)進(jìn)先出,LIFO = 后入先出。

隊(duì)列:

  隊(duì)列可以并發(fā)的派多個(gè)線程,對(duì)排列的線程處理,并切每個(gè)需要處理線程只需要將請(qǐng)求的數(shù)據(jù)放入隊(duì)列容器的內(nèi)存中,線程不需要等待,當(dāng)排列完畢處理完數(shù)據(jù)后,線程在準(zhǔn)時(shí)來(lái)取數(shù)據(jù)即可。請(qǐng)求數(shù)據(jù)的線程只與這個(gè)隊(duì)列容器存在關(guān)系,處理數(shù)據(jù)的線程down掉不會(huì)影響到請(qǐng)求數(shù)據(jù)的線程,隊(duì)列會(huì)派給其他線程處理這分?jǐn)?shù)據(jù),它實(shí)現(xiàn)了解耦,提高效率。隊(duì)列內(nèi)會(huì)有一個(gè)有順序的容器,列表與這個(gè)容器是有區(qū)別的,列表中數(shù)據(jù)雖然是排列的,但數(shù)據(jù)被取走后還會(huì)保留,而隊(duì)列中這個(gè)容器的數(shù)據(jù)被取后將不會(huì)保留。當(dāng)必須在多個(gè)線程之間安全地交換信息時(shí),隊(duì)列在線程編程中特別有用。

參數(shù)介紹:

# 先入先出 maxsize 可設(shè)置大小,設(shè)置block=False拋異常
class queue.Queue(maxsize=0)
 # 后進(jìn)先出
class queue.LifoQueue(maxsize=0)
# 存儲(chǔ)數(shù)據(jù)時(shí)可設(shè)置優(yōu)先級(jí)的隊(duì)列
# 優(yōu)先級(jí)設(shè)置數(shù)越小等級(jí)越高
class queue.PriorityQueue(maxsize=0)
# 放入數(shù)據(jù)
Queue.put(item, block=True, timeout=None)
# 取出數(shù)據(jù) #沒(méi)有數(shù)據(jù)將會(huì)等待
Queue.get(block=True, timeout=None)
# 如果1秒后沒(méi)取到數(shù)據(jù)就退出
Queue.get(timeout = 1)
# 取數(shù)據(jù),如果沒(méi)數(shù)據(jù)拋queue.Empty異常
Queue.get_nowait()
# 查看隊(duì)列大小
Queue.qsize()
# 返回True,如果空
Queue.empty() #return True if empty
# 設(shè)置隊(duì)列大小
Queue.full()
# 后續(xù)調(diào)用告訴隊(duì)列,任務(wù)的處理是完整的。
Queue.task_done()

生產(chǎn)者消費(fèi)者模型:

import threading,time
import queue
# 最多存入10個(gè)
q = queue.Queue(maxsize=10)
def producer(name):
  count = 1
  while True:
      # 生產(chǎn)一塊骨頭
      q.put("骨頭 %s" % count )
      print("生產(chǎn)了骨頭",count)
      count +=1
      time.sleep(0.3)
def consumer(name):
  while True:
    print("%s 取到[%s] 并且吃了它" %(name, q.get()))
    time.sleep(1)
    # 告知這個(gè)任務(wù)執(zhí)行完了
    q.task_done()
# 生成線程
p = threading.Thread(target=producer,args=("德國(guó)骨科",))
c = threading.Thread(target=consumer,args=("陳狗二",))
d = threading.Thread(target=consumer,args=("呂特黑",))
# 執(zhí)行線程
p.start()
c.start()
d.start()

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python打包后的exe還原成.py的實(shí)現(xiàn)步驟

    Python打包后的exe還原成.py的實(shí)現(xiàn)步驟

    本文主要介紹了Python打包后的exe還原成.py的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • keras-siamese用自己的數(shù)據(jù)集實(shí)現(xiàn)詳解

    keras-siamese用自己的數(shù)據(jù)集實(shí)現(xiàn)詳解

    這篇文章主要介紹了keras-siamese用自己的數(shù)據(jù)集實(shí)現(xiàn)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • http通過(guò)StreamingHttpResponse完成連續(xù)的數(shù)據(jù)傳輸長(zhǎng)鏈接方式

    http通過(guò)StreamingHttpResponse完成連續(xù)的數(shù)據(jù)傳輸長(zhǎng)鏈接方式

    這篇文章主要介紹了http通過(guò)StreamingHttpResponse完成連續(xù)的數(shù)據(jù)傳輸長(zhǎng)鏈接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python編輯和運(yùn)行的四種方式

    Python編輯和運(yùn)行的四種方式

    本篇內(nèi)容主要是講python在電腦上編輯和運(yùn)行的幾種不同方式,后面主要是在pycharm中去寫代碼,然后運(yùn)行,其實(shí)還有其他的方式可以在電腦上寫python代碼和運(yùn)行python代碼,需要的朋友可以參考下
    2024-08-08
  • 如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題

    如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題

    這篇文章主要介紹了如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python datetime模塊的使用示例

    Python datetime模塊的使用示例

    這篇文章主要介紹了Python datetime模塊的使用示例,幫助大家更好的理解和使用python處理時(shí)間,感興趣的朋友可以了解下
    2021-02-02
  • 利用Python封裝MySQLHelper類實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查功能

    利用Python封裝MySQLHelper類實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查功能

    Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫(kù),本文主要介紹了如何封裝一個(gè)MySQLHelper類,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增刪改查功能,感興趣的可以了解一下
    2023-06-06
  • pycharm終端解釋器與Python解釋器配置

    pycharm終端解釋器與Python解釋器配置

    這篇文章主要介紹了pycharm終端解釋器與Python解釋器配置,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Python使用pyyaml模塊處理yaml數(shù)據(jù)

    Python使用pyyaml模塊處理yaml數(shù)據(jù)

    這篇文章主要介紹了Python使用pyyaml模塊處理yaml數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python 互換字典的鍵值對(duì)實(shí)例

    Python 互換字典的鍵值對(duì)實(shí)例

    今天小編就為大家分享一篇Python 互換字典的鍵值對(duì)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02

最新評(píng)論