学习契机

最近的一个项目中在使用grpc时遇到一个问题,由于client端可多达200,每个端口每10s向grpc server发送一次请求,server端接受client的请求后根据request信息更新数据库,再将数据库和配置文件的某些数据封装后返回给client。原代码的性能是0.26s/request,远远达不到所需性能,其中数据库更新操作耗时达到80%,其中一个优化点就是将数据库更新操作放在独立的线程中。

在次之前没有使用过线程编码,学以致用后本着加深理解的想法,将这个过程记录下来,这里先记下用于线程间通信的队列Queue的相关知识。

概念

Python2中队列库名称为Queue,Python3中已改名为queue,项目使用Python2.7.5版本,自然是使用Queue。

Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,可在多线程通信中直接使用。

Queue模块定义了以下类及异常,在队列类中,maxsize限制可入队列数据的数量,值小于等于0时代表不限制:

Queue.Queue(maxsize=0) FIFO队列

Queue.LifoQueue(maxsize=0) LIFO队列

Queue.PriorityQueue(maxsize=0) 优先级队列

Queue.Empty TODO

Queue.Full

Queue(Queue、LifoQueue、PriorityQueue)对象提供以下方法:

Queue.qsize()

python queue模块安装_Python -- Queue模块相关推荐

  1. python queue模块安装_Python queue包_程序模块 - PyPI - Python中文网

    沃特?另一个消息队列? 考虑到消息队列的激增,人们可能倾向于相信 发明更多不是答案.使用现有的解决方案是 多次尝试与大多数现有的消息队列产品. 其他的失败(对于我们的用例). queuey是用来处理大 ...

  2. python scapy模块安装_python scapy模块安装与依赖模块

    scapy 模块安装 今天因为要用到scapy 模块就进行安装: windows: pip install scapy 成功安装. mac: pip install scapy 竟然提示权限问题,于是 ...

  3. python datetime模块安装_Python datetime模块

    一.简介 在 python 中,datetime 是对日期数据进行处理的主要模块.无论何时你需要用 python 处理日期数据,datetime 都能提供所需方法.datetime 是 python ...

  4. python string模块安装_python String模块-阿里云开发者社区

    string成员常量: ascii_letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPQRSTUVWXYZ' ascii_lowercase  ...

  5. python re模块安装_python re模块

    python 里re模块有两种方式: # 将正则表达式编译成一个pattern规则对象 pattern = re.compile("\d") pattern.match(): 从起 ...

  6. python hashlib模块安装_python hashlib 模块

    hashlib模块用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模 ...

  7. python shutil模块安装_python shutil模块

    1.复制文件和文件夹 调用 shutil.copy(source, destination),将路径 source 处的文件复制到路径 destination处的文件夹( source 和 desti ...

  8. python queue的用法_python Queue模块使用

    Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个"队列"对象 import Qu ...

  9. python cv2模块安装_Python运行脚本前,自动安装需要的模块包

    在服务器上部署Python程序时,往往需要先安装很多需要的模块包.如果一个一个安装就会出现忘记的情况.或者新增加某个新的模块时,也可能会忘记安装. 这里先讲一下怎么通过Python程序自动安装. 以下 ...

最新文章

  1. win10 安装 Pytorch
  2. ZigBee TI ZStack CC2530 3.18 串口01-发送
  3. MariaDB Java Client 1.1.0 发布
  4. javascript中编码与解码的decodeURI()、decodeURIComponent()区别
  5. SpringBoot快速入门Demo
  6. mysql round 四舍五入_MySQL之ROUND函数四舍五入的陷阱
  7. 比尔盖茨:希望我们的家庭能够获得空间和隐私
  8. JMM和synchronized
  9. 用python怎么读_python怎么读sql数据?
  10. android 清除应用程序数据,清除Android应用程序用户数据
  11. Facebook 的 PHP 性能与扩展性
  12. IntelliJ IDEA 中使用 Lambok (注解无效问题的解决)
  13. 白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(3):反距离权重
  14. 中国最小黑客:为不做作业 黑掉学校系统
  15. sublime之解决显示中文乱码
  16. dcmtk在PACS开发中的应用(基础篇) 第三章 工作列表(Work List)(一)( BY 冷家锋)
  17. 流媒体的几种播放方式
  18. 分享几个快速加微信粉丝的方法
  19. 如何用appnode程序导入WP模板阁带数据的模板
  20. 计算机折旧的常用会计函数,Excel财务函数:AMORLINC每个结算期间的折旧值-excel技巧-电脑技巧收藏家...

热门文章

  1. 神仙情侣:一起读研读博,然后结婚……
  2. 一个程序员的水平能差到什么程度
  3. 在密码学研究方面不断创新突破—— 女密码学家的成功密码
  4. 重磅!华为发布2025年十大趋势
  5. 曾隐姓埋名28年,两弹一星元勋于敏逝世
  6. √2是个无理数,没有尽头,为什么边长为1的直角三角形可以画出来? 是悖论吗?...
  7. AI芯片格局最全分析
  8. Flume 实战开发指南
  9. cuda的global memory介绍
  10. 开源微服务编排框架:Netflix Conductor