from queue import Queue

q = Queue(maxsize=3)#限制队列3个

#添加内容进去到队列
q.put(10)
q.put(20)
q.put(30)


print(q.qsize())#获取队列内容个数
# q.put(40)#如果队列内容满了再添加将会柱塞,进程无法结束吗,直到内容有位置

# q.put_nowait(50)#如果满了, 还添加就报一个Full的错误
print(q.unfinished_tasks)#没有结束任务数量,
# 这个变量, 每次添加都会增加1,但是每次get时候, 并不会减少1

print(q.get())#获取到内容从头获取

q.task_done()# (任务完成意思)才会让 unfinished_tasks 参数减少1

print(q.get())
q.task_done()
print(q.unfinished_tasks)
print(q.get())
q.task_done()
print(q.unfinished_tasks)


# 默认情况下. 当队列为空了, 再调用get方法就阻塞当前线程, 知道能取出数据为止
# print(q.get())

# - url..

# - 发送请求获取响应的
# 当 unfinished_tasks == 0 时候, 判定任务都完成了
q.join() # 让主线程登录, 直到队列中任务都完成了为止

就是这么简单

posted on 2018-07-25 16:00  是鱼的记忆  阅读(140)  评论(0编辑  收藏  举报