李欣耘 2021-07-11 16:48 采纳率: 100%
浏览 49
已结题

可以提供思路吗?越详细越好

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;
}
  • 写回答

4条回答 默认 最新

  • ghostp 2021-07-12 15:09
    关注

    1、按照题目是一个累加计数问题,需要保障多线程调用的情况下都可以进行原子累加操作,建议看看LongAdder
    2、第二个类的每个数据,可以知道最小单位是秒,那么需要存储每秒的计数值,同时为了分钟的不至于存储数据过多,再有一个是分钟存储的累加值。给你一个参考:https://blog.csdn.net/bahun9158/article/details/101672093 可以找找你的思路

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 已采纳回答 7月12日
  • 创建了问题 7月11日

悬赏问题

  • ¥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地图怎么实现一进来页面散点数据和卡片一起轮播