接前文:

带有最小间隔时间的队列读取实现 —— 最小等待时间的队列 —— Python编程

由于上次的设计多少有些简单,这里对此丰富一下。

=====================================

根据前文的内容进行了修改和丰富,得到下面设计:

(需要说明的是,根据模拟环境的测试前后这两个版本的性能,即吞吐量基本一致,所以并没有哪个更优一说,这里只是提供零一种思路)

from multiprocessing import Process, Queue
import threading
from threading import Thread
import numpy as np
import time
import queue q = Queue(maxsize=128) def produce(q):
while True:
q.put( np.random.rand(128, 128) )
time.sleep(np.random.randint(100)/1000) for _ in range(10):
p = Process(target=produce, args=(q, ))
p.start() data = []
def consumer(data):
l = len(data)
print("长度:", len(data))
data.clear()
time.sleep(0.1)
return l """
while True:
print(q.qsize())
""" s = 0
# while True:
b_t = time.time() interval = 0.1
for i in range(36):
for _ in range(10): # 超参数, 轮询次数
l = q.qsize()
if l >= 32: # batch_size
# l = min(l, 64)
l = max(l, 64)
break
else:
time.sleep(interval/10) for _ in range(l):
data.append(q.get()) # print("time: ", i)
s += consumer(data) b = time.time() - b_t
print(b)
print(s)
print("吞吐率", s/b)

=====================================

带有最小间隔时间的队列读取实现 —— 最小等待时间的队列 —— Python编程(续)的更多相关文章

  1. spark SQL读取ORC文件从Driver启动到开始执行Task(或stage)间隔时间太长(计算Partition时间太长)且产出orc单个文件中stripe个数太多问题解决方案

    1.背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式.查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop ...

  2. C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;

    ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...

  3. 小记:Quartz 当 Job 执行时间超过触发间隔时间时所发生的情况

    一个普通的 Job 实现如下: public class Job1 : IJob { public void Execute(IJobExecutionContext context) { Conso ...

  4. 小笔记:Timer定时间隔时间操作

    小笔记:Timer定时间隔时间操作,后面有时间再补充和完善: public class TimingSvc { /// <summary> /// 定时器,执行定时任务 /// </ ...

  5. js前台计算两个日期的间隔时间

    js前台计算两个日期的间隔时间(时间差)原创 2017年08月28日 16:09:43 标签:javascript 1144在后台传来两个时间字段,从中解析出两个字符串类型的日期格式 需要在前台解析出 ...

  6. Python3.x:简单时间调度Timer(间隔时间执行)

    Python3.x:简单时间调度Timer(间隔时间执行) threading模块中的Timer能够帮助实现定时任务,而且是非阻塞的: 代码: import threading import time ...

  7. 【Linux 命令】fping ping 包间隔时间详解

    服务器间检查会用到fping的命令,期间遇到了一个问题,需要将ping包间的间隔时间设置为100毫秒,查看fping -h看下,找到了-i和-p两个参数: 看到这两个参数,我当时的表情是这样的: 看不 ...

  8. 队列读取器代理 遇到错误 Row handle is invalid

    原文:队列读取器代理 遇到错误 Row handle is invalid 今天测试在发布中更改表名称,在发布数据库更改后重新发布这个表. 但是原来的表在订阅没有删除,不小心插入数据到原表中,队列读取 ...

  9. SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败

    原文:SqlServer 可更新订阅队列读取器代理错误:试图进行的插入或更新已失败 今天发现队列读取器代理不停地尝试启动但总是出错: 其中内容如下: 队列读取器代理在连接"Publicati ...

  10. SQL SERVER数据库,按年、月、日、时、分、秒计算两个时间字段之间的间隔时间样例

    使用DATEDIFF(取值,时间字段1,时间字段2) 举例: SELECT DATEDIFF(YEAR,DRYSJ,DCYSJ),* FROM YXHIS2019..TBZYBR2019 --SQL ...

随机推荐

  1. C#.NET 使用Task.Run和Task.Delay 延时执行任务(代码)

    C#.NET 使用Task.Run和Task.Delay 延时执行任务(代码) 环境: .NET 4.5.2 .NET WEB MVC + WEB API. 示例代码: using CommonUti ...

  2. .NET6 .NET CORE 使用Apollo

    Apollo默认有一个"SampleApp"应用,"DEV"环境 和 "timeout" KEY. nuget 中下载 "Com. ...

  3. 随机二次元图片API上线

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 随机二次元图片API上线 日期:2017-12-6 阿珏 ...

  4. 这几个必备的vscode插件,你安装了几个

    作为一名前端开发者,vscode想必大家应该都接触过,就像大多数 IDE 一样,VSCode 也有一个扩展和主题市场,包含了数以千计质量不同的插件. 作为一名熟练掌握各种前端开发工具安装和卸载的大师兄 ...

  5. [代码]C语言进行md5,SHA256,SHA512加密

    前言 原本在学puppet,它的user资源需要设置hash后的散列值,结果-我把加密算法,shadow文件,密码破解搞了个遍- 环境 CentOS7 gcc编译器 /etc/shadow文件解析 文 ...

  6. 在Gerrit中修改project.config

    reference:https://blog.bruin.sg/2013/04/19/how-to-edit-the-project-config-for-all-projects-in-gerrit ...

  7. CF1864F 题解

    写了一小时结果被卡常了(笑. 考虑新加入一个数什么时候会产生贡献,或者什么时候不会产生贡献. 发现当一个数的位置与他前一次出现时的位置所构成的区间内假若有一个比它小的数那么就不得不对这个数新进行一次操 ...

  8. linux常见终端命令和一些小问题的解决

    此文章为linux常见终端命令汇总和一些小问题的解决方法,会不定期更新. [常见指令] 1. 误按 Ctrl+s 锁住终端. ubuntu16命令行误按 Ctrl + s 导致终端锁定,Ctrl + ...

  9. 树莓派4B-GPIO控制舵机转动

    树莓派4B-GPIO控制舵机转动 硬件需求: 树莓派 舵机 杜邦线 舵机 什么是舵机? 舵机(servomotor)是一种简化版本的伺服电机,是位置伺服的驱动器,能够通过输入PWM信号控制旋转角度,具 ...

  10. 如何支持同一台电脑上使用不同版本的Node.js版本

    在我们实际项目开发过程中,经常不同项目使用的node.js版本会也有所不同,为了方便维护不同版本的项目.可以使用nvm来解决. 1.下载nvm https://github.com/coreybutl ...