python之队列

python之队列

文章目录

  • python之队列
  • 一、队列是什么?
  • 二、使用步骤
    • 1.引入库


一、队列是什么?

1、先进先出
2、后进先出
3、优先级队列

二、使用步骤

1.引入库

1、先进先出 代码如下(示例):

from queue import Queue, LifoQueue, PriorityQueue
# 实例化一个队列对象
q = Queue(6)#可以不限制队列大小
# 队列添加数据:put,put_nowait
q.put('python001')
q.put('python006', timeout=3)  # 参数timeout 设置等待时间
q.put_nowait('pythhn00000')   # 添加数据不等待
#qsize:获取队列中数据的长度
print(q.qsize())
#get: 获取数据
print(q.get())
# 判断队列是否为空
print(q.empty())
# 判断队列是否已满
print(q.full())

"""
task_done: 向队列发送一条任务执行完毕的消息,添加3条数据,就要进行3次task_done,否则join会一直等待。
join: 等待队列中所有的任务是否执行完毕
"""

2、后进先出 代码如下(示例):

from queue import LifoQueue, PriorityQueue

# 后入先出
# q = LifoQueue()
# q.put(11)
# q.put(22)
# print(q.get())


# 优先级队列:(队列中添加的数据为元组,元组的一个值,用来设置队列的优先级)
q = PriorityQueue()
q.put((-15, '9999'))
q.put((77, '9999'))
q.put((4, '9999'))
q.put((99, '9999'))
print(q.get())
print(q.get())
print(q.get())
print(q.get())

案例:
读取txt文件中的url地址,将url地址放入队列中

'''需求:并发读取txt中的URL地址'''
    list_test = []
    filename = "url.txt"
    file = open(filename, "r")
    # 列表推导式
    list_test = [line.strip("\n") for line in file]
    url_list=[q.put(i) for i in list_test]

def url_test():
    while not q.empty():
        url= q.get()
        

你可能感兴趣的:(小白学习python之路,python,开发语言)