最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python隊列基本操作和多線程隊列

 更新時間:2022年02月10日 11:55:47   作者:侯小啾?  
pythonQueue隊列模塊提供了同步線程安全的隊列類,包括FIFO(先入先出)隊列Queue,LIFO(后入先出)隊列LifoQueue,和優(yōu)先級隊列PriorityQueue,這些隊列都實現(xiàn)了鎖原語,能夠在多線程中直接使用,可以使用隊列來實現(xiàn)線程間的同步,下面我們就來看看python隊列基本操作吧

一、隊列基本操作

from queue import Queue

q = Queue(5) ?# 創(chuàng)建一個容量為5的隊列。如果給一個小于0的數(shù),則隊列為無限大小。(這是官方的解釋,實際不是無限大小,而是跟內(nèi)存有關(guān))

# 存儲數(shù)據(jù)
q.put(123) ?# 數(shù)值?
q.put('hello world!') ?# 字符串
q.put(['hello', 'world']) ?# 列表
q.put(('hello', 'world')) ?# 元組
q.put({'hello': 'world'}) ?# 字典

# 如果再試圖存儲第六個,則會發(fā)生阻塞,因為容量已設(shè)定為5
# q.put({'hello': 'python'})

取出隊列中的值:

print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())

如圖五個值被依次取出。Queue隊列遵循的是先進先出。

q.put_nowait()

q.put_nowait()方法可以無阻礙地向隊列中添加內(nèi)容,如果隊列已滿則會立即報錯,不會等待(即不會發(fā)生阻塞)。

q.get_nowait()

q.get_nowait()方法可以無阻礙地從隊列中取出內(nèi)容,如果隊列是空的則也會直接報錯,不會等待。
具體使用不再示例。

查看隊列當前大小

q.qsize()

print(q.qsize())
print(q.get())
print(q.qsize())
print(q.get())
print(q.qsize())
print(q.get())
print(q.qsize())
print(q.get())
print(q.qsize())
print(q.get())
print(q.qsize())

如圖,每取出一個值,隊列大小就減一。同樣每存入一個值隊列大小就會加一。

q.full()

判斷隊列是否是滿的。

q.empty()

判斷隊列是否是空的。

print(q.full())
print(q.get())
print(q.get())
print(q.full())
print(q.empty())
print(q.get())
print(q.get())
print(q.get())
print(q.empty())

二、多線程隊列

from queue import Queue
import threading
import time


# 存儲值,每隔一秒存儲一個
def set_value(q):
? ? num = 0
? ? while True:
? ? ? ? q.put(num)
? ? ? ? num += 1
? ? ? ? time.sleep(1)

# 取值,不間斷地取
def get_value(q):
? ? while True:
? ? ? ? print(q.get())


if __name__ == '__main__':
? ? q = Queue(4)
? ? t1 = threading.Thread(target=set_value, args=(q, ))
? ? t2 = threading.Thread(target=get_value, args=(q, ))

? ? t1.start()
? ? t2.start()

程序開始運行,一邊存儲,一邊取值:

此思想應(yīng)用在爬蟲上,即一邊訪問并獲取數(shù)據(jù),一邊下載數(shù)據(jù)。

到此這篇關(guān)于python隊列基本操作和多線程隊列的文章就介紹到這了,更多相關(guān)python隊列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • tensorflow1.x和tensorflow2.x中的tensor轉(zhuǎn)換為字符串的實現(xiàn)

    tensorflow1.x和tensorflow2.x中的tensor轉(zhuǎn)換為字符串的實現(xiàn)

    本文主要介紹了tensorflow1.x和tensorflow2.x中的tensor轉(zhuǎn)換為字符串的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python利用IPython提高開發(fā)效率

    Python利用IPython提高開發(fā)效率

    本文詳細介紹了在python中如何利用ipython提高代碼開發(fā)效率,對大家使用python很有幫助,有需要的小伙伴們可以參考借鑒。
    2016-08-08
  • Python裝飾器簡單用法實例小結(jié)

    Python裝飾器簡單用法實例小結(jié)

    這篇文章主要介紹了Python裝飾器簡單用法,結(jié)合實例形式總結(jié)分析了Python裝飾器的基本功能、簡單用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-12-12
  • 關(guān)于keras中的Reshape用法

    關(guān)于keras中的Reshape用法

    這篇文章主要介紹了關(guān)于keras中的Reshape用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)

    Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn)

    KeyboardInterrupt異常是Python中的一個標準異常,它通常發(fā)生在用戶通過鍵盤中斷了一個正在運行的程序,本文主要介紹了Python捕獲全局的KeyboardInterrupt異常的方法實現(xiàn),感興趣的可以了解一下
    2024-08-08
  • Python如何讀寫CSV文件

    Python如何讀寫CSV文件

    這篇文章主要介紹了Python如何讀寫CSV文件,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-08-08
  • python能否java成為主流語言嗎

    python能否java成為主流語言嗎

    在本篇文章里小編給大家分享的是一篇關(guān)于python能否java成為主流語言的相關(guān)知識點,有興趣的朋友們參考下。
    2020-06-06
  • Python中方法定義與方法調(diào)用舉例詳解

    Python中方法定義與方法調(diào)用舉例詳解

    在Python中,方法調(diào)用是編寫程序時經(jīng)常會涉及到的一個重要概念,下面這篇文章主要給大家介紹了關(guān)于Python中方法定義與方法調(diào)用的相關(guān)資料,文章通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • tensorflow的ckpt及pb模型持久化方式及轉(zhuǎn)化詳解

    tensorflow的ckpt及pb模型持久化方式及轉(zhuǎn)化詳解

    今天小編就為大家分享一篇tensorflow的ckpt及pb模型持久化方式及轉(zhuǎn)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Pygame改編飛機大戰(zhàn)制作兔子接月餅游戲

    Pygame改編飛機大戰(zhàn)制作兔子接月餅游戲

    一年中秋又快到了,今年加入了Python的學習行列,得益于Python的開發(fā)效率和易讀性,網(wǎng)上寫文章的次數(shù)多了起來,既然是中秋節(jié)那肯定要搞個應(yīng)景的游戲才行
    2022-09-09

最新評論

若羌县| 巧家县| 平定县| 湟中县| 渝中区| 宁城县| 岗巴县| 策勒县| 溧水县| 凭祥市| 白银市| 镇坪县| 铁岭县| 上饶市| 伊宁县| 视频| 忻州市| 宿松县| 剑阁县| 横山县| 瓦房店市| 怀集县| 佛冈县| 英超| 兴仁县| 兴海县| 延安市| 共和县| 文安县| 西丰县| 镇江市| 若羌县| 宁津县| 巴楚县| 策勒县| 惠安县| 鄂伦春自治旗| 梨树县| 嘉禾县| 绥芬河市| 九江县|