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

python隊(duì)列基本操作和多線程隊(duì)列

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

一、隊(duì)列基本操作

from queue import Queue

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

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

# 如果再試圖存儲(chǔ)第六個(gè),則會(huì)發(fā)生阻塞,因?yàn)槿萘恳言O(shè)定為5
# q.put({'hello': 'python'})

取出隊(duì)列中的值:

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

如圖五個(gè)值被依次取出。Queue隊(duì)列遵循的是先進(jìn)先出。

q.put_nowait()

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

q.get_nowait()

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

查看隊(duì)列當(dāng)前大小

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())

如圖,每取出一個(gè)值,隊(duì)列大小就減一。同樣每存入一個(gè)值隊(duì)列大小就會(huì)加一。

q.full()

判斷隊(duì)列是否是滿的。

q.empty()

判斷隊(duì)列是否是空的。

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())

二、多線程隊(duì)列

from queue import Queue
import threading
import time


# 存儲(chǔ)值,每隔一秒存儲(chǔ)一個(gè)
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ùn)行,一邊存儲(chǔ),一邊取值:

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Python如何讀寫CSV文件

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

    python能否java成為主流語(yǔ)言嗎

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

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

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

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

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

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

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

最新評(píng)論

新田县| 汶上县| 蓝山县| 张家口市| 科尔| 婺源县| 聂拉木县| 七台河市| 孟津县| 和龙市| 屏南县| 唐河县| 大关县| 博客| 浦江县| 静乐县| 汾西县| 乌苏市| 华宁县| 弥渡县| 威信县| 广安市| 田东县| 商丘市| 紫云| 晴隆县| 徐州市| 镇远县| 武强县| 达州市| 威宁| 临泉县| 宜宾市| 商河县| 青海省| 阳春市| 徐州市| 新野县| 华坪县| 吐鲁番市| 北辰区|