# -*- coding: UTF-8 -*-
"""
学习队列 Queue 总结:
1. 队列可以设置大小,也可以无限大小
2. 空了,满了,读写时可以阻塞,也可以报错
3. 队列中可以存储不同的数据类型对象
4. 队列的实现大量用到 线程模块 threading ,说明适用多线程之间的数据共享操作
不确定是否适合多进程之间的数据共享操作
5. 队列的实现用到锁操作,acquire,release,wait,notify 不需要在个人代码中使用 使用:
1. 创建队列对象 myqueue = Queue.Queue(maxsize=2)
2. 往队列写数据 myqueue.put(data)
3. 从队列读数据 myqueue.get()
"""
import Queue # size<=0,表示队列无限长度
myqueue = Queue.Queue(maxsize=2) myqueue.put(5)
myqueue.put("ab") # 支持不同的类型
print "flag1"
# myqueue.put("cd") # 队列满了,会阻塞
# myqueue.put("cd",False) # 队列满了,会报错 print "flag2"
print myqueue.qsize() # 队列大小
print myqueue.get()
print myqueue.get()
print myqueue.qsize() # 队列大小 print myqueue.get() # 队列空了,会阻塞
print myqueue.get(True) # 队列空了,会阻塞
print myqueue.get(False) # 队列空了,抛出异常 print "flag3" """
Out: flag1
flag2
2
5
ab
0
阻塞....
"""

[b0027] python 归纳 (十二)_并发队列Queue的使用的更多相关文章

  1. [b0029] python 归纳 (十四)_队列Queue实现生产者消费者

    # -*- coding: UTF-8 -*- """ 多线程的生产者,消费者 使用队列Queue """ import Queue imp ...

  2. [b0033] python 归纳 (十八)_队列Queue在多线程中使用(二)

    # -*- coding: UTF-8 -*- """ 多线程同时读队列 使用 join(), task_done() 逻辑: 3个子线程并发 从有6个数据的队列中取数据 ...

  3. [b0034] python 归纳 (十九)_线程同步_条件变量

    代码: # -*- coding: utf-8 -*- """ 学习线程同步,使用条件变量 逻辑: 生产消费者模型 一个有3个大小的产品库,一个生产者负责生产,一个消费者 ...

  4. [b0031] python 归纳 (十六)_线程同步_锁

    # -*- coding: utf-8 -*- """ 学习 多线程同步 使用锁 threading.Lock() 逻辑: 2 个线程,操作同一个整型变量,一个加法,另外 ...

  5. [b0030] python 归纳 (十五)_多进程使用Pool

    1 usePool.py #coding: utf-8 """ 学习进程池使用 multiprocessing.Pool 总结: 1. Pool 池用于处理 多进程,并不 ...

  6. Python笔记(十二)_文件

    文件的打开模式 'r':以只读的方式打开文件(默认) 'w':以写入的方式打开文件,会覆盖已存在的文件 'x':用写入的方式打开文件,如果文件已存在,会抛出异常 'a':用写入的方式打开文件,如果文件 ...

  7. [CSAPP笔记][第十二章并发编程]

    第十二章 并发编程 如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent).这种常见的现象称为并发(concurrency). 硬件异常处理程序,进程和Unix信号处理程序都是大家熟 ...

  8. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  9. CSAPP:第十二章 并发编程

    CSAPP:第十二章 并发编程 12.1 线程执行模型12.2 多线程之间并发通信12.3 其他并发问题   使用应用级并发的应用程序称为并发程序.现代操作系统提供三种基本的构造并发程序的方法: 进程 ...

随机推荐

  1. PHP删除数组中重复的元素

    array_unique($arr): //删除重复元素 $arr = [1,2,3,0,1]; echo '<pre>'; var_dump($arr); $arr = array_un ...

  2. 动态构建Lambda表达式实现EF动态查询

    在使用Entity Framework做数据查询的时候,查询条件往往不是固定的,需要动态查询.可以通过动态构建Lamda表达式来实现动态查询. Lamda表达式 使用Lamda表达式可以很方便的按条件 ...

  3. android 在基类activity中注册BroadcastReceiver,子activity类实现响应

    android app 一般都会定义自己的BaseActivity, 如果各子Activity都需要接收广播但对广播的处理又不同时,可以考虑在BaseActivity中注册BroadcastRecei ...

  4. Python对MongoDB增删改查

    pip install pymongo import pymongo # 建立连接 client = pymongo.MongoClient() # 指定数据库 (不存在则会新建) db = clie ...

  5. python redis的连接及相关操作

    1.redis连接.及存取值 import redis r = redis.Redis(host='192.168.2.22',port=6379,db=2,password= 'redis') r. ...

  6. java异常处理机制详解

    java异常处理机制详解 程序很难做到完美,不免有各种各样的异常.比如程序本身有bug,比如程序打印时打印机没有纸了,比如内存不足.为了解决这些异常,我们需要知道异常发生的原因.对于一些常见的异常,我 ...

  7. NOIP 2016 玩具谜题

    洛谷 P1563 玩具谜题 洛谷传送门 JDOJ 3136: [NOIP2016]玩具谜题 D1 T1 JDOJ传送门 Description 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天 ...

  8. HttpClient基本功能的使用 Get方式

    一.GET 方法     使用 HttpClient 需要以下 6 个步骤:     1. 创建 HttpClient 的实例     2. 创建某种连接方法的实例,在这里是 GetMethod.在 ...

  9. java(二)变量

    基础数据类型: 数值型:整型(byte.short.int.long).浮点型(float.double)java各整数类型有固定的表数范围和字段长度,不受具体os的影响,以保持java的可移植性:j ...

  10. Linux进程和计划任务实践

    1.显示统计占用系统内存最多的进程,并排序. 方法一 [root@test ~]#ps aux --sort=%mem USER PID %CPU %MEM VSZ RSS TTY STAT STAR ...