• 自写时间小工具类


      有时候需要用到计算程序运行的时间,每次都是直接用System.currentTimeMillis()或者另外一个纳秒的.觉得比较麻烦,就写了一个简单的工具,大神勿喷,有好的建议欢迎留言. 

    旧版本的代码,存在很多不足.

    package com.wk.mothod;
    
    public class MyTimeUtil {
    
        private long time=0;
        public  void start() {
            time=System.currentTimeMillis();
        }
        public void end(){
            time=System.currentTimeMillis()-time;
        }
        public long endAndGet(){
            time=System.currentTimeMillis()-time;
            return time;
        }
        public long getTime(){
            return time;
        }
        public void disp() {
            System.out.println("The total time is:"+time+"ms");
        }
        public void endAndDisp() {
            time=System.currentTimeMillis()-time;
            System.out.println("The total time is:"+time+"ms");
        }
    }
    View Code 

    优化了下,简单添加了一些锁.不会造成一些重复操作,也有一个实际使用的例子.

    package com.wk.mothod;
    
    public class MyTimeUtil {
    
        private long time=0;
        private boolean stag=false,etag=false;
        private int tag=0;
        public  void start() {
            if(stag==false){
                time=System.currentTimeMillis();
                stag=true;
            }else{
                System.out.println("Start failed! Time has started!");
            }
        }
        public  void reStart() {
            if(stag==true){
                time=System.currentTimeMillis();
            }else{
                System.out.println("ReStart failed! Time hasn't started!");
            }
        }
        public long end(){
            if(etag==false&&stag==true){
                time=System.currentTimeMillis()-time;
                etag=true;
                stag=false;
            }else{
                System.out.println("End failed! Time hasn't started or alread stop!");
            }
            return time;
        }
        public long getTime(){
            long t=0;
            if(stag==true){
                return System.currentTimeMillis()-time;//wkupdate 20170725 get time whenever
            }else{
                System.out.println("Time hasn't started!");
                return 0;
            }
            //        return time;
        }
        public void disp() {
            if(etag==true){
            System.out.println("The total time is:"+time+"ms!");
            }else{
                System.out.println("Time haven't end");
                
            }
        }
        public void endAndDisp() {
            if(etag==false&&stag==true){
                time=System.currentTimeMillis()-time;
                System.out.println("The total time is:"+time+"ms!");
                etag=true;
                stag=false;
            }else{
                System.out.println("End failed! Time hasn't started or alread stop!");
            }
        }
        
        
        public static  void main(String [] args){
            MyTimeUtil mt=new MyTimeUtil();
            mt.reStart();//test for lock.
            mt.start();
            mt.start();//test for lock.
            mt.reStart();//test for lock.
            for(long i=0;i<(1<<24);i++){
                if(i%(1<<21)==0){
                    System.out.println(mt.getTime());// get real time everytime.
                }
                if(i%(1<<23)==0){
                    mt.disp(); //add to test for lock.
                }
            }
            mt.end();
            mt.end();//test for lock.
            mt.endAndDisp();//test for lock.
            mt.disp();
        }
    }
  • 相关阅读:
    《大型网站技术架构:核心原理与案例分析》阅读笔记三
    《大型网站技术架构:核心原理与案例分析》阅读笔记二
    《大型网站技术架构:核心原理与案例分析》阅读笔记一
    《用户故事与敏捷方法》阅读笔记三
    软件需求与分析课堂讨论一
    信息领域热词分析
    datax的第一次使用
    质量属性2——质量六大属性之可用性在代码端的实现
    质量属性1——《淘宝网》
    阅读笔记之——《架构漫谈》四
  • 原文地址:https://www.cnblogs.com/wangkun1993/p/7199146.html
Copyright © 2020-2023  润新知