• TimeUnit


    转http://blog.csdn.net/hudashi/article/details/6936604

    public enum TimeUnit
    extends Enum<TimeUnit>
    TimeUnit 表示给定单元粒度的时间段,它提供在这些单元中进行跨单元转换和执行计时及延迟操作的实用工具方法。TimeUnit 不维护时间信息,但是有助于组织和使用可能跨各种上下文单独维护的时间表示形式。
    TimeUnit 主要用于通知基于时间的方法如何解释给定的计时参数。

    例如,如果 lock 不可用,则以下代码将在 50 毫秒后超时:
      Lock lock = ...;
      if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...
     而以下代码将在 50 秒后超时:
      Lock lock = ...;
      if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...
    但是注意,不保证特定超时实现能够以与给定 TimeUnit 相同的粒度通知 段。 
    从以下版本开始:
        1.5 
    枚举常量摘要
    MICROSECONDS    微秒   一百万分之一秒(就是毫秒/1000)
    MILLISECONDS    毫秒   千分之一秒    
    NANOSECONDS   毫微秒  十亿分之一秒(就是微秒/1000)
    SECONDS          秒
    MINUTES     分钟
    HOURS      小时
    DAYS      天
    主要接口:
     long  convert(long duration, TimeUnit unit)
              将给定单元的时间段转换到此单元。
     void  sleep(long timeout)
              使用此单元执行 Thread.sleep.这是将时间参数转换为 Thread.sleep 方法所需格式的便捷方法。
     void  timedJoin(Thread thread, long timeout)
              使用此时间单元执行计时的 Thread.join。
     void  timedWait(Object obj, long timeout)
              使用此时间单元执行计时的 Object.wait。
     long  toMicros(long duration)
              等效于 MICROSECONDS.convert(duration, this)。
     long  toMillis(long duration)
              等效于 MILLISECONDS.convert(duration, this)。
     long  toNanos(long duration)
              等效于 NANOSECONDS.convert(duration, this)。
     long  toSeconds(long duration)
              等效于 SECONDS.convert(duration, this)。
    static TimeUnit  valueOf(String name)
              返回带有指定名称的该类型的枚举常量。
    static TimeUnit[]  values()
              按照声明该枚举类型的常量的顺序,返回包含这些常量的数组。
    注意1:它的常量MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS都是TimeUnit类型
    注意2:convert(long duration, TimeUnit unit)的意思将duration这个时间转化为本对象(this)所表示的时间形式。
    本对象可能MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS的一种。
    至于duration是哪种形式的时间(MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS的一种),
    则是通过参数TimeUnit unit来确定的
    注意3:TimeUnit是enum(枚举)类型,不能通过外部来实例化。
    对用户来说只有它内部定义的下常量可用:MICROSECONDS,MILLISECONDS,NANOSECONDS,SECONDS,MINUTES,HOURS,DAYS
    注意4:对于常量MINUTES,HOURS,DAYS,在Java1.5和Android中并没看到,但是在Java1.6中却有。
    注意5:关于枚举类型的知识可参加《枚举类型
    实例1:
    class Task implements Delayed
    {
     String name;
     long submitTime;
     Task(String taskName,long delayTime)
     {
      name=taskName;
      /*conver the time from MILLISECONDS to NANOSECONDS
       * *
       */
      submitTime=TimeUnit.NANOSECONDS.convert(submitTime, TimeUnit.MILLISECONDS) + System.nanoTime();  
     }
     public long getDelay(TimeUnit unit) 
     {  
      System.out.println("get delay");
             return unit.convert(submitTime - System.nanoTime(), TimeUnit.NANOSECONDS);  
      }  
        public int compareTo(Delayed o) 
        {  
         System.out.println("compareTo");
             Task that = (Task) o;  
             return submitTime > that.submitTime?1:(submitTime < that.submitTime ? -1 : 0);  
        } 
     void doTask()
     {
      System.out.println("do task:"+name);
     }
    }
  • 相关阅读:
    Spark官方调优文档翻译(转载)
    Spark性能优化指南——高级篇(转载)
    Spark性能优化指南——基础篇(转载)
    Apache Spark 内存管理详解(转载)
    Apache Spark 2.2.0新特性介绍(转载)
    SparkSQL – 从0到1认识Catalyst(转载)
    深入研究Spark SQL的Catalyst优化器(原创翻译)
    GC调优在Spark应用中的实践(转载)
    Project Tungsten:让Spark将硬件性能压榨到极限(转载)
    Spark SQL在100TB上的自适应执行实践(转载)
  • 原文地址:https://www.cnblogs.com/yaya-Android/p/4543927.html
Copyright © 2020-2023  润新知