【发布时间】:2017-09-27 13:01:05
【问题描述】:
我正在以毫秒为单位进行计算,我真的不希望我的线程花费更多时间进行时间计算,而不是分配给它的工作。但是我想实现一些东西:
1- It should not generate more than n requests per second
2- If it has generated less, it should start at zero for the next second(obviously :D)
我正在尝试做一些性能基准测试,我的目标是让所有 CPU 只进行处理,而不是在每次请求后进行时间计算。大致上,我正在处理
08:36 - 171299
08:37 - 170970
08:38 - 163763
我想确保我在这里每分钟发出的请求数不超过160000。如何实现这是个问题。
提前致谢!
【问题讨论】:
-
我认为你的机器(即使它是一个 GameBoy)可以轻松处理一个计算 à la
1000 / n每秒。 -
您真的应该发布一些代码,目前尚不清楚您要做什么以及如何尝试。听起来您想使用
ScheduledThreadPoolExecutor。 -
@mumpitz 我不明白你的意思,我不会说这很有帮助......
-
您应该看看 Guava 的 RateLimiter 并搜索有关如何使用它的示例。
-
@FilipMalczak 感谢您的批评,虽然它反过来不是很有帮助。尽管我的措辞很幽默,但我实际上试图说明一点:我不认为计算所需的延迟是一个大问题。您对这个问题的(老实说)回答确实包括幕后的相同计算 - 我认为这很好。无论如何,这是处理这个问题的好方法。朋友?
标签: java multithreading