佇列 多執行緒利器

2022-09-11 22:33:40 字數 1142 閱讀 5715

先進先出模式

import queue #

執行緒佇列

q = queue.queue() #

先進先出,先存進的資料,就先被取出來。如果()內有數字,如5,意思是q內可以放的資料數量

q.put(12)

q.put(

'hello')

q.put()

q.put(34,false) #

意思是,如果佇列已經滿了。put不進去,會返回

print(q.qsize()) #

佇列裡面具體的值

print(q.empty()) #

是否為空

print(q.full()) #

是否為滿的狀態

while 1:

data = q.get(block = false) #

當佇列被取完後,如果還繼續取的話,會返回

print

(data)

print('

---------

')

先進後出模式

import

queue

q =queue.lifoqueue()

q.put(12)

q.put(

'hello')

q.put()

while 1:

data = q.get(block=false) #

當佇列被取完後,如果還繼續取的話,會返回

print

(data)

print('

---------

')

優先順序模式

import

queue

q =queue.priorityqueue()

q.put([3,12]) #

列表裡面第乙個數字越小,優先順序越高

q.put([2,'

hello'])

q.put([4,])

while 1:

data = q.get() #

當佇列被取完後,如果還繼續取的話,會返回

print

(data)

print('

---------

')

多執行緒利器queue

import queue q queue.queue maxsize 10 queue.queue類即是乙個佇列的同步實現。佇列長度可為無限或者有限。可通過queue的建構函式的可選引數maxsize來設定佇列長度。如果maxsize小於1就表示佇列長度無限。q.put 10 呼叫佇列物件的put ...

多執行緒, 執行緒佇列

self performselectoronmainthread selector refreshcellforliveid withobject userinfo waituntildone yes 該方法的作用是在主線程中,執行制定的方法 塊 引數 selector refreshcellfor...

多執行緒 佇列

對於編寫多執行緒的朋友來說,佇列具有天生的互斥性。在佇列裡面,乙個負責新增資料,乙個負責處理資料。誰也不妨礙誰,誰也離不開誰。所以,佇列具有天生的並行性。只針對 乙個執行緒讀,乙個執行緒寫。當不滿足這個先決條件,多執行緒也完蛋,也得進佇列加鎖,出佇列加鎖 view plain print?defin...