佇列
佇列的乙個特性是:先進先出(first in first out, fifo),
python中,同樣可以使用列表來儲存佇列的資料。通過建立乙個佇列類,便可以方便的對佇列進行操作。主要有:
入隊(in()) 出隊(out()) 清空佇列(empty()) 設定佇列大小(setsize()) 獲取隊尾位置(getend())等
python實現**示例
# -*- coding: utf-8 -*-
created on mon apr 1 15:41:12 2019
@author: mu
class pyqueue: # 建立佇列
def __init__(self,size=20):
self.queue = #
self.size = size # 佇列大小
self.end = -1 # 隊尾
# 設定佇列大小
def setsize(self,size):
self.size = size
# 入隊
def in(self,element):
if self.end
self.end +=1
else:
raise queueexception('pyqueuefull') # 隊滿,引發異常
# 出隊
def out(self):
if self.end != -1:
element = self.queue[0]
self.queue = self.queue[1:]
self.end -= 1
return element
else:
raise queueexception('pyqueueempty') # 隊空,丟擲異常
# 獲取隊尾位置
def getend(self):
return self.end
# 清空佇列
def empty(self):
self.queue =
self.end = -1
class queueexception(exception): #自定義異常類
def __init__(self,data):
self.data = data
def __str__(self):
return self.data
主程式if __name__ == '__main__':
queue = pyqueue()
for i in range(10) : #入隊
queue.in(i)
print('隊尾位置:',queue.getend())
while queue.getend != -1:
print(queue.out())
queue.empty() #清空佇列
for i in range(20):
print(queue.out()) #引發異常
題外記和棧類似,實現很簡易!
celery清空佇列
本人在使用python celery佇列時,有時候需要清空佇列,但是python celery似乎並沒有清空佇列的api 至少我沒找到 所以使用redis cli工具進行佇列清空 使用redis cli工具,命令如下,在終端直接輸入 redis cli n 15 ltrim transcode 0 ...
python模擬佇列 入出 清空佇列基本操作
佇列與棧的結構類似,但不同的是佇列的出隊操作是在隊首元素進行的刪除操作。基本原則是先進先出。用列表,列表的功能非常強大,既能模擬堆疊又能模擬佇列,出隊的時候 入隊的時候,直接在尾部加入 list如果對資料結構感興趣,可以檢視這篇博文 執念斬長河專欄資料結構 目錄 實驗效果 實驗 coding utf...
清空socket接收佇列
在socket建立時,linux的核心會為socket分配乙個傳送緩衝區和乙個接收緩衝區,實際上是乙個struct sk buff的佇列,當我們呼叫send sendto sendmsg及recv recvfrom recvmsg時,會傳送或接收佇列中的第乙個資料。現在我們只考慮接收的情況,如果甲一...