041队列queue(重要,多线程使用)
内容:队列类型、方法、使用
###############
queue定义了3种信息列队模式类
Queue([maxsize]):FIFO列队模式
LifoQueue([maxsize]):LIFO列队模式,栈模式
#######方法
q.qsize():返回列队大小
q.full():如果列队满了返回True,否则False
q.empty():如果列队为空返回True,否则为False
队列特点:先进先出,里面有一个锁,保证多线程数据安全
import queue
q = queue.Queue(3) # 里面设置放多少个数据
q.put('jinxing')
q.put('xming')
q.put('qqqq')
q.put('q', 0) # 0位置的参数默认是1,1表示超过设置个数该线程阻塞,0表示超过设置个数会报错
print(q.get())
print(q.get())
print(q.get())
print(q.get(0)) # 0表示没有会报错,默认表示阻塞
作用:可以不用使用同步,队列里面有一个锁
看下面例子:
from random import randint
import threading
from time import sleep
import queue class Production(threading.Thread):
def run(self):
while True:
r = randint(0,100)
q.put(r)
print("生产出来%s号包子"%r)
sleep(1) class Proces(threading.Thread):
def run(self):
while True:
ret = q.get()
print('吃掉%s号包子'%ret) if __name__ == '__main__':
q = queue.Queue()
threads = [Production(),Production(),Production(),Proces()]
for t in threads:
t.start()
041队列queue(重要,多线程使用)的更多相关文章
- [b0033] python 归纳 (十八)_队列Queue在多线程中使用(二)
# -*- coding: UTF-8 -*- """ 多线程同时读队列 使用 join(), task_done() 逻辑: 3个子线程并发 从有6个数据的队列中取数据 ...
- [b0028] python 归纳 (十三)_队列Queue在多线程中使用
# -*- coding: UTF-8 -*- """ 多线程同时读队列 总结: 1. 会阻塞 if self._jobq.qsize() > 0 进入逻辑,此时被 ...
- 消息队列queue
一.queue 在多线程编程中,程序的解耦往往是一个麻烦的问题,以及在socket网络编程中也会有这样的问题.recv 和send之间,如果服务端有消息,问题需要发送给客户端,而那边的recv 被主程 ...
- Python进阶【第二篇】多线程、消息队列queue
1.Python多线程.多进程 目的提高并发 1.一个应用程序,可以有多进程和多线程 2.默认:单进程,单线程 3.单进程,多线程 IO操作,不占用CPU python的多线程:IO操作,多线程提供并 ...
- python笔记9 线程进程 threading多线程模块 GIL锁 multiprocessing多进程模块 同步锁Lock 队列queue IO模型
线程与进程 进程 进程就是一个程序在一个数据集上的一次动态执行过程.进程一般由程序.数据集.进程控制块三部分组成.我们编写的程序用来描述进程要完成哪些功能以及如何完成:数据集则是程序在执行过程中所需要 ...
- 网络编程基础--多线程---concurrent.futures 模块---事件Event---信号量Semaphore---定时器Timer---死锁现象 递归锁----线程队列queue
1 concurrent.futures 模块: # from abc import abstractmethod,ABCMeta # # class A(metaclass=ABCMeta): # ...
- 消息队列Queue大全
消息队列Queue大全 (http://queues.io/) 作业队列,消息队列和其他队列.几乎所有你能想到的都在这. 关于 那里有很多排队系统.他们每个人都不同,是为解决某些问题而创建的.这个页面 ...
- 使用队列queue实现一个简单的生产者消费者模型
一.生产者消费者模型 我们去超市商店等地购买商品时,我们大部分人都会说自己是消费者,而超市的各大供货商.工厂等,自然而然地也就成了我们的生产者.如此一来,生产者有了,消费者也有了,那么将二者联系起来的 ...
- C#队列Queue实现一个简单的电商网站秒杀程序
电商的秒杀和抢购,对程序员来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要. 我们 ...
随机推荐
- Ubuntu18.0.4配置Hadoop1.2.1环境
在虚拟机中安装Linux,我这里选用VMware虚拟机:Linux版本是Ubuntu VMware安装Ubuntu这里就不做说明了,网上有很多教程 1.安装jdk apt install openjd ...
- JavaScript的原型链继承__propt__、prototype、constructor的理解、以及他们之间相互的关系。
回想自己已经工作了有一段时间了,但是自己对JavaScript的原型链.和继承的理解能力没有到位,最近他们彻底的整理并且复习了一遍. 本案例中部分文案来自网络和书籍,如有侵权请联系我,我只是把我的理解 ...
- Fork开源项目之通讯框架
项目发布于:https://github.com/HouZhiHouJue/IOCPMSG.看代码前请先看简介.
- 初学SpringMVC,使用MVC进行文件上传
最近在做一个文件上传的功能,走了不少弯路,话不多说,直接上代码: 导入各种jar包,首先是applicationContext.xml配置文件中: <!-- 配置文件解析器 --> < ...
- Cheatsheet: 2018 05.01 ~ 07.31
JAVA Java Tips: Creating a Monitoring-Friendly ExecutorService Other Modeling the Card Game War in C ...
- [javaSE] GUI(对话框Dialog)
对话框不能单独存在,依赖于窗体,有显示标题,有模式 获取Dialog对象,new出来,构造参数:Frame对象,String的标题,模式 窗体内部的内容,Label对象,Button对象,调用Dial ...
- HTML骨架详解
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- HDU 2276 Kiki & Little Kiki 2 矩阵构造
Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- log4j2配置文件
项目里面经常用到日志,Java开发一般用log4j.slf4j这些框架,看着配置文件有点懵.这几天看公司代码的时候,也有用到log4j,感觉要复杂一点.在本地打log,也有打到hive里面存的.看了一 ...
- Java内存区域与虚拟机类加载机制
一.Java运行时数据区域 1.程序计数器 “线程私有”的内存,是一个较小的内存空间,它可以看做当前线程所执行的字节码的行号指示器.Java虚拟机规范中唯一一个没有OutOfMemoryError情况 ...