您现在的位置是:亿华云 > IT科技类资讯
Python数据结构与算法—优先级队列Queue
亿华云2025-10-04 00:44:36【IT科技类资讯】1人已围观
简介前言queue库提供了一个适用于多线程编程的先进先出(FIFO)数据结构,可以用来在生产者与消费者线程之间安全地传递消息或其他数据。它会为调用者处理锁定,使多个线程可以安全而更容易地处理同一个Queu
前言
queue库提供了一个适用于多线程编程的数据算法先进先出(FIFO)数据结构,可以用来在生产者与消费者线程之间安全地传递消息或其他数据。结构级队
它会为调用者处理锁定,优先使多个线程可以安全而更容易地处理同一个Queue实例。数据算法Queue的结构级队大小可能受限,以限制内存使用或处理。优先
基本用法
Queue类实现了一个基本的数据算法先进先出容器。使用put()将元素增加到这个序列的结构级队一端,使用get()从另一端删除。优先具体代码如下所示:
import queue q = queue.Queue() for i in range(1,数据算法 10): q.put(i) while not q.empty(): print(q.get(), end=" ")运行之后,效果如下:
这里我们依次添加1到10到队列中,结构级队因为先进先出,源码下载优先所以出来的数据算法顺序也与添加的顺序相同。
LIFO队列
既然有先进先出队列queue,结构级队那么数据结构中肯定也有后进先出的优先队列。后进先出的队列为:LifoQueue,示例如下:
import queue q = queue.LifoQueue() for i in range(1, 10): q.put(i) while not q.empty(): print(q.get(), end=" ")运行之后,效果如下:
优先队列
在操作系统中,我们常常会根据优先级来处理任务,比如系统的优先级最高,我们肯定优先处理系统任务,然后才处理用户的服务器托管任务。同样,queue库给我们提供了PriorityQueue来处理优先级的队列。
示例如下:
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()运行之后,效果如下:
这里,我们默认数值越大优先级越高,可以看到15先执行,然后再是5,1任务。这个例子展现了有多个线程在处理任务时,要根据get()时队列中元素的优先级来处理。
服务器租用很赞哦!(161)
相关文章
- 在此期间,他们每天仍在这里卖大米,在理财方面个人感情有待提高。因为现在是收米的最佳时机。
- 博通连续30天暴涨,英伟达将遭平替?AMD优势不够,英伟达卡生产过剩;26年微软、Meta自由现金流接近于零,租赁市场只剩5家
- 资源合池化后的异构差异问题解析--CPU分层现象和解决思路
- 数据中心的工作方式以及在规模和范围上的变化
- 4、注册门槛低
- 性能、可靠性和效率三者兼顾,AMD正式发布EPYC 4005系列处理器
- 精通Nginx配置,实现高效精准的流量限制策略
- 云集成数据中心网络优势有哪些
- 公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
- 什么是无人数据中心?应该使用无人数据中心吗?