Python queue 模块

news/2024/12/23 2:25:48/

Python queue 模块

  • 1、Queue
  • 2、Queue & Threading -- 1
  • 3、Queue & Threading -- 2

1、Queue

  • Init signature: queue.Queue(maxsize=0)
  • Docstring: Create a queue object with a given maximum size.If maxsize is <= 0, the queue size is infinite.
from queue import Queue
import randomq = Queue()
print(q, type(q))# <queue.Queue object at 0x000001B6ED33DCA0> <class 'queue.Queue'>
q.put(random.randint(1, 100))
q.put(random.randint(1, 100))
print(q)        # <queue.Queue object at 0x00000184B2FA94C0>
print(q.get())  # 22
print(q.get())  # 83
# print(q.get())  
# it blocks if no item available# print(q.get(timeout=3))  
# it blocks at most 'timeout' seconds and raises the Empty exception if no item was available within that time# print(q.get_nowait())
# Remove and return an item from the queue without blocking.
# Only get an item if one is immediately available. Otherwise raise the Empty exception.
q.maxsize = 3
q.put(random.randint(1, 100))
q.put(random.randint(1, 100))
q.put(random.randint(1, 100))
# q.put(random.randint(1, 100), timeout=3)  # Full
# If 'timeout' is a non-negative number, it blocks at most 'timeout' seconds 
# and raises the Full exception if no free slot was available within that time.

2、Queue & Threading – 1

import threading
import queue
import random
import timeq = queue.Queue()
q.put(random.randint(0, 100))
q.put(random.randint(0, 100))def q_put(q):time.sleep(3)q.put("I'm in function.")time.sleep(0.00001)print("=== function ===")print(q.get())
print(q.get())t = threading.Thread(target=q_put, args=(q,))
t.start()print("=== After Threading ===")print(q.get(timeout=5))
53
54
=== After Threading ===
I'm in function.
=== function ===

3、Queue & Threading – 2

import threading, queueq = queue.Queue()def worker():while True:item = q.get()print(f'working on {item}')print(f'finished {item}')q.task_done()# turn on the worker thread
threading.Thread(target=worker, daemon=True).start()# send five task requests to the worker
for item in range(5):q.put(item)# block until all tasks are done
q.join()
print('all work completed')
working on 0
finished 0
working on 1
finished 1
working on 2
finished 2
working on 3
finished 3
working on 4
finished 4
all work completed

http://www.ppmy.cn/news/237570.html

相关文章

2.集成开发环境搭建(IDE)

集成开发环境搭建&#xff08;IDE&#xff09; 1.安装eclipse2.启动eclipse3.设置编码格式UTF-84.快捷操作5.使用eclipse创建java项目6.制表符&#xff08;了解&#xff09; 1.安装eclipse 官网:https://www.eclipse.org/downloads/ 2.启动eclipse 双击打开eclipse&#xff…

汇编语言集成开发环境略述

(一)编辑器(Editor) 编辑器是不可或缺的,而现在的编辑器也实在太多,在dos下你肯定用过经典的dos自带的edit,或者 asmedit,wps等,然而现在平台已经转移到了Windows,我们的选择就更加丰富了,替代edit的是notepad,甚至有word,wps2000这样强大的文字处理工具,然而选择他们并不是写a…

JS逆向之艺恩数据

文章目录 目标网站数据加密问题分析接口&#xff0c;断点调试简化还原 js最后一步&#xff0c;python还原js算法 文章内容仅用于学习和技术交流&#xff0c;如有侵权请联系我删除。 目标网站 https://www.endata.com.cn/BoxOffice/BO/Year/index.html 数据加密问题 我们先看…

C 编程异常 — double free or corruption (fasttop)

问题&#xff1a;运行代码的时候程序崩溃。 *** Error in ./parsing: double free or corruption (fasttop): 0x00000000023d2350 ***Backtrace: /lib64/libc.so.6(0x81679)[0x7f349ead0679] ./parsing[0x4011fe] ./parsing[0x401b07] /lib64/libc.so.6(__libc_start_main0xf…

微信小程序开发—(一)全局配置

一.app.json 使用app.json文件来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等. 注意在.json不能注释&#xff0c;否则会出错。 二.工具栏tabBar 如果我们的小程序是一个多 tab 应用&#xff08;客户端窗口的底部或顶部…

LeetCode_二叉树_BFS_中等_117.填充每个节点的下一个右侧节点指针 II

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给定一个二叉树&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; }填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点&#xff0c;则将 …

一个Sqrt函数引发的血案

我们平时经常会有一些数据运算的操作&#xff0c;需要调用sqrt&#xff0c;exp&#xff0c;abs等函数&#xff0c;那么时候你有没有想过&#xff1a;这个些函数系统是如何实现的&#xff1f;就拿最常用的sqrt函数来说吧&#xff0c;系统怎么来实现这个经常调用的函数呢&#xf…

COM 类工厂中 CLSID 为 {A86BB4D8-209D-40E1-87A6-7AA236094FAD} 的组件时失败,原因是出现以下错误: 800401...

第一&#xff1a; 检查dll文件是否存在 第二&#xff1a; 兼容问题&#xff0c;看iis配置是否兼容32位应用程序。如果你原先用32位开发系统时。 64位Win7下&#xff0c;IIS7的进程池l默认都没有 开启32位应用程序&#xff0c;这样会导致运行一个莫名其妙的错误&#xff1a; 未…