py py2自帶Queue模組實現了3類佇列

2022-03-12 17:17:45 字數 1963 閱讀 5226

先搞清楚幾個單詞

queue模組實現了三類佇列:

佇列一般有 push pop size empty等

先進先出  q = queue.queue(maxsize)

後進先出 a = queue.lifoqueue(maxsize)

優先順序 queue.priorityqueue(maxsize)

queue.qsize() 返回佇列的大小

queue.empty() 如果隊列為空,返回true,反之false

queue.full() 如果佇列滿了,返回true,反之false

queue.full 與 maxsize 大小對應

queue.put(item) 寫入佇列,timeout等待時間 非阻塞

queue.get([block[, timeout]]) 獲取佇列,timeout等待時間

queue.get_nowait() 相當queue.get(false)

queue.put_nowait(item) 相當queue.put(item, false)

queue.task_done() 在完成一項工作之後,函式向任務已經完成的佇列傳送乙個訊號

queue.join(): 實際上意味著等到隊列為空,再執行別的操作

fifo(先進先出)
import queue

q = queue.queue()

for i in range(5):

q.put(i)

while not q.empty():

print q.get()

lifo(後進先出)
import queue

q = queue.lifoqueue()

for i in range(5):

q.put(i)

while not q.empty():

print q.get()

帶優先順序的佇列
import queue

class job(object):

def __init__(self, priority, description):

self.priority = priority

self.description = description

print 'new job:', description

return

def __cmp__(self, other):

return cmp(self.priority, other.priority)

q = queue.priorityqueue()

q.put( job(3, 'mid-level job') )

q.put( job(10, 'low-level job') )

q.put( job(1, 'important job') )

while not q.empty():

next_job = q.get()

print 'processing job:', next_job.description

讓程式使用自帶的字型2

之前寫過一篇部落格,說明關於載入自帶字型的。不過後來發現使用addfontresource函式缺點不少。主要是建立的字型不是自己程式私有的,其他程式也可以使用到。而且函式呼叫後會在程式目錄建立乙個.fot格式的檔案。後來再次翻閱msdn時發現了addfontmemresourceex函式,這個函式可...

cocos2d x 自帶座標演算法

數學函式 c view plain copy ccp x,y 以座標x,y建立乙個向量 ccpfromsize s 以size s的width為x,height為y建立乙個向量 ccpoint的加減乘除運算運算 c view plain copy ccpadd v1,v2 等價 ccp v1.x v...

JDK自帶命令native2ascii的用法

jdk中自帶的native2ascii功能還是比較強的。簡單做以下介紹。1 只轉換特定字元 native2ascii 在控制台中可以輸入漢字回車後,就可以看到轉移後的字元了。ctrl c退出。2 轉換properties檔案 native2ascii allmessages zh cn input ...