sleep()-03-02

Sleep需要捕获或者抛出异常,但是run方法不能抛出异常throws,所以在run方法中只能捕获异常(try catch)

不是,如果我要用一个标记位来终止线程,但是又不能传参怎么办?好像只能设置全局变量。如果要在main方法中用lambda表达式,则需要将所有属性和方法都设置static

image.png
//倒计时
static Date date = new Date(currentTimeMillis() + 1000 * 10);
    static DateFormat dateFormat = new SimpleDateFormat("hh:ss");
    static boolean flag = true;

    public static void main(String[] args) throws InterruptedException {
        new Thread(()->{
            int i = 1;
            while(flag){
                terminal();
                System.out.println(dateFormat.format(date.getTime() - 1000 * i++));
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

    public static void terminal(){
        if(date.getTime() - currentTimeMillis() <= 0){
            flag = false;
        }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 八、深入理解java异常处理机制 引子try…catch…finally恐怕是大家再熟悉不过的语句了, 你的答案是...
    壹点零阅读 1,642评论 0 0
  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    胜浩_ae28阅读 5,153评论 0 23
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,144评论 0 62
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,845评论 0 10
  • 今天很欣喜、遇到很久之前并不太熟悉的老友,她约我、有些专业问题需要咨询、但我们聊了很多非专业的问题!她以现身说法的...
    lawyer丽阅读 142评论 0 0