五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

Python數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級(jí)隊(duì)列queue用法詳解

發(fā)布日期:2022-04-04 10:17 | 文章來源:gibhub

一、基本用法

Queue類實(shí)現(xiàn)了一個(gè)基本的先進(jìn)先出容器。使用put()將元素增加到這個(gè)序列的一端,使用get()從另一端刪除。具體代碼如下所示:

import queue
q = queue.Queue()
for i in range(1, 10):
 q.put(i)
while not q.empty():
 print(q.get(), end="  ")

運(yùn)行之后,效果如下:

這里我們依次添加1到10到隊(duì)列中,因?yàn)橄冗M(jìn)先出,所以出來的順序也與添加的順序相同。

二、LIFO隊(duì)列

既然有先進(jìn)先出隊(duì)列queue,那么數(shù)據(jù)結(jié)構(gòu)中肯定也有后進(jìn)先出的隊(duì)列。后進(jìn)先出的隊(duì)列為:LifoQueue,示例如下:

import queue
q = queue.LifoQueue()
for i in range(1, 10):
 q.put(i)
while not q.empty():
 print(q.get(), end="  ")

運(yùn)行之后,效果如下:

三、優(yōu)先隊(duì)列

在操作系統(tǒng)中,我們常常會(huì)根據(jù)優(yōu)先級(jí)來處理任務(wù),比如系統(tǒng)的優(yōu)先級(jí)最高,我們肯定優(yōu)先處理系統(tǒng)任務(wù),然后才處理用戶的任務(wù)。同樣,queue庫給我們提供了PriorityQueue來處理優(yōu)先級(jí)的隊(duì)列。

示例如下:

import queue
import threading

class Job:
 def __init__(self, priority, desc):
  self.priority = priority
  self.desc = desc
  print("New Job:", desc)
  return
 def __eq__(self, other):
  try:
return self.priority == other.priority
  except AttributeError:
return NotImplemented
 def __lt__(self, other):
  try:
return self.priority > other.priority
  except AttributeError:
return NotImplemented

def process_Job(q):
 while True:
  next_job = q.get()
  print(next_job.desc)
  q.task_done()

q = queue.PriorityQueue()
q.put(Job(5, "Five Job"))
q.put(Job(15, "Fifteen Job"))
q.put(Job(1, "One Job"))
workers = [
 threading.Thread(target=process_Job, args=(q,)),
 threading.Thread(target=process_Job, args=(q,)),
]
for work in workers:
 work.setDaemon(True)
 work.start()
q.join()

運(yùn)行之后,效果如下:

這里,我們默認(rèn)數(shù)值越大優(yōu)先級(jí)越高,可以看到15先執(zhí)行,然后再是5,1任務(wù)。這個(gè)例子展現(xiàn)了有多個(gè)線程在處理任務(wù)時(shí),要根據(jù)get()時(shí)隊(duì)列中元素的優(yōu)先級(jí)來處理。

到此這篇關(guān)于Python數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級(jí)隊(duì)列queue用法詳解的文章就介紹到這了,更多相關(guān)Python隊(duì)列queue 內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

香港服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部