美文网首页
怎么计算剩余时长

怎么计算剩余时长

作者: 小银杏 | 来源:发表于2018-01-04 20:44 被阅读15次

当需要计算的任务量比较大时,比如1000多万的数据,除了通过对任务池任务进行合理调度,并行多个线程运行,除此外,我们还期望知道每个线程的具体执行情况,以及计算剩余的时长。。

采用面向对象术解决这个问题
1,首先建立一个TaskTimer的类,并定义外部方法,例如设置总任务长度setTotal,以及每执行一次任务进行快照的take,由于有一些任务是不定长的,我们增加addTotal,用于延长任务长度(与setTotal不同之处在于不用记住之前的总长度,因为当子任务运行时,并不一定知道也不关心总队列的长度),差不多这些就够了
2,在未实现代码具体功能前,先编写UnitTest(面向API开发),审查实际应用场景下,所设计的API是否能满足一般需求,例如又补充了getRate和getInfo分别获取任务完成比率和剩余时间。
3,开始具体的实现,内部方法使用private修饰,防止外部使用的人错误调用,可被继承重载的方法使用protect修饰,又补充了一些私有的运算所需的avgTime与diffTime属性
4,运行测试,检验功能是否符合预期,返回修改代码,或调整单元测试。

image.png image.png

tips:所有标记为public的方法修改都必须仔细小心,一点改动就容易造成不兼容,然后就是带来一大把的重构任务,而private的方法,可以随便怎么改,无任何外部兼容问题。
对于属性,尽量以get/set方法提供对外的访问,这样才好兼容和控制,当然偷懒的人也用public属性,但仅适合小团队和个人使用,容易挖坑,比如window
location.href,至今没有任何办法知道哪块代码会通过赋值修改它,然后重载它以便予以阻止..
有时不得不采用freeze冻结它,以防止恶意或未知的代码控制跳转,不是所有的代码都是可靠可被修改的,

相关文章

  • 怎么计算剩余时长

    当需要计算的任务量比较大时,比如1000多万的数据,除了通过对任务池任务进行合理调度,并行多个线程运行,除此外,我...

  • Flex-Grow无效问题

    但究竟是怎么计算呢?flex-grow重点说明落在 剩余 这两个字上,父元素剩余的空间,那什么算父元素剩余空间呢,...

  • 如何精确计算Android应用的使用时长

    应用时长的计算友盟早期做法计算每个Activity的时长,然后全部相加就是App的使用时长。后来的做法是在客户端计...

  • 计算设备剩余的空间

    方法一: 方法二: 方法三:

  • 如何计算文章阅读时长?

    在 Medium 上读文章,已经养成了一个习惯:看看这篇文章需要多长时间才能读完。 突然好奇起来,如何估算一篇文章...

  • FFmpeg 3.0 计算视频时长

    1、问题:AVFormatContext和AVStream都有duration: int64_t字段,调用av_d...

  • FFmpeg 播放时间计算

    概念 1、计算总时长: 通过 pAVFormatCtx->duration 即可得到总时长,但是再 FFmpeg ...

  • javascript时间推算

    时间的推算关系 计算顺序:年 (月) 日 时 分 秒 毫秒先从大的时间开始计算,大时间计算剩余的时间才用于计算小时...

  • 根据经纬度和日期计算日出日落时间

    直接计算日出和日落时间会比较复杂,可以通过计算当地的“正午”时间、当地的“白天”时长,用正午时间平分白天时长,得到...

  • task

    task创建 doFirst 计算build执行时长 task依赖

网友评论

      本文标题:怎么计算剩余时长

      本文链接:https://www.haomeiwen.com/subject/uqsdnxtx.html