import java.util.List;
/**
* 通用计数器模块接口ICounter,用于系统内部的请求量计数,
* 多个线程会频繁调用hit()方法进行计数
*
* 请实现ICounter接口(请关注接口实现,不需要写测试用例)
* 不使用任何第三方的服务(包括Redis)
*/
interface ICounter {
// 调用一次,计数加1
void hit();
// 获取当前的计数统计状态
StatData getStat();
}
class StatData {
// 最近10秒的每秒平均计数量
public long last10SecondAverage;
// 最近10分钟的每分钟平均计数量
public long last10MinuteAverage;
// 最近60分钟的每分钟平均计数量
public long last60MinuteAverage;
// 最近60秒的每秒计数量的集合
public List<Long> last60SecondHistory;
}
可以提供思路吗?越详细越好
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- ghostp 2021-07-12 15:09关注
1、按照题目是一个累加计数问题,需要保障多线程调用的情况下都可以进行原子累加操作,建议看看LongAdder
2、第二个类的每个数据,可以知道最小单位是秒,那么需要存储每秒的计数值,同时为了分钟的不至于存储数据过多,再有一个是分钟存储的累加值。给你一个参考:https://blog.csdn.net/bahun9158/article/details/101672093 可以找找你的思路本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
- ¥20 verilog状态机方法流水灯
- ¥15 pandas代码实现不了意图
- ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
- ¥25 LT码在高斯信道下的误码率仿真
- ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
- ¥15 yolov5目标检测并显示目标出现的时间或视频帧
- ¥15 电视版的优酷可以设置电影连续播放吗?
- ¥50 复现论文;matlab代码编写
- ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播