计算多个并发线程的流量速度

时间:2012-02-06 21:25:21

标签: java android

我正在寻找一种有效的方法来计算我的应用的流量速度。我有多个并发线程通过网络下载数据。我有一个Facade,通过调用facade.setCurrentData(int data)收集他们读取了多少字节

现在,我每秒都抓住currentData字段来计算特定秒的速度。因此,这将计算速度,然后将currentData字段重置为0.当然所有这些都与setCurrentData方法同步运行,这使我相信这不是非常有效,因为下载线程需要等待在发布总速度之前获取锁定。有更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

修改

您唯一的选择是:

  • 保持原样,无论如何,在快速机器上同步并不是非常昂贵
  • 使用AtomicLong / Integer作为chahuistle提到
  • 跟踪上次读取的值,存储它,然后在下次读取时消除差异,无需同步,只需要使“currentData”不稳定。