博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 延时的几种方法方法
阅读量:4575 次
发布时间:2019-06-08

本文共 2798 字,大约阅读时间需要 9 分钟。

 

 

1、 用Thread就不会iu无法终止

new Thread(new Runnable() {            public void run() {                while (true) {                    test();                    try {                        Thread.sleep(500);                    } catch (InterruptedException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }            }            private void test() {                // TODO Auto-generated method stub            }            public Runnable start() {                // TODO Auto-generated method stub                return null;            }        }.start());

2、 或者用现成的

javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() {   public void actionPerformed(ActionEvent e) {     repaint();   } };

timer.start();

3、下面这个方法测试过可以用 java非线程延时

import java.awt.Robot;import java.util.Date;public class test {     public   static   void   main(String[]   args)   throws   Exception{            Robot  r   =   new   Robot();          System.out.println( "延时前:"+new Date().toString()  );          r.delay(   2000   );            System.out.println(   "延时后:"+new Date().toString()   );      }   }

 

  4、 用这下面的TimeTask类(指定延时)

java里面的sleep()并不能精确定时,TimeTask可以:例下面的小程序:

import java.util.*;public class test {    public static void main(String[] args) {        Timer timer = new Timer();// 实例化Timer类        timer.schedule(new TimerTask() {            public void run() {                System.out.println("退出");                this.cancel();            }        }, 5000);// 这里百毫秒        System.out.println("本程序存在5秒后自动退出");    }}

 5.用concurrent包的TimeUnit类延时sleep()方法延时

package concurrency;//: concurrency/SleepingTask.java// Calling sleep() to pause for a while.import java.util.concurrent.*;public class SleepingTask extends LiftOff {  public void run() {    try {      while(countDown-- > 0) {        System.out.print(status());        // Old-style:        // Thread.sleep(100);        // Java SE5/6-style:        TimeUnit.MILLISECONDS.sleep(100);//MILLISECONDS表示以毫秒为单位延时      }    } catch(InterruptedException e) {      System.err.println("Interrupted");    }  }  public static void main(String[] args) {    ExecutorService exec = Executors.newCachedThreadPool();    for(int i = 0; i < 5; i++)      exec.execute(new SleepingTask());    exec.shutdown();  }} /* Output:#0(9), #1(9), #2(9), #3(9), #4(9), #0(8), #1(8), #2(8), #3(8), #4(8), #0(7), #1(7), #2(7), #3(7), #4(7), #0(6), #1(6), #2(6), #3(6), #4(6), #0(5), #1(5), #2(5), #3(5), #4(5), #0(4), #1(4), #2(4), #3(4), #4(4), #0(3), #1(3), #2(3), #3(3), #4(3), #0(2), #1(2), #2(2), #3(2), #4(2), #0(1), #1(1), #2(1), #3(1), #4(1), #0(Liftoff!), #1(Liftoff!), #2(Liftoff!), #3(Liftoff!), #4(Liftoff!),*///:~

 

转载于:https://www.cnblogs.com/jiangfeilong/p/10494414.html

你可能感兴趣的文章
C#-CLR各版本特点
查看>>
css3背景透明文字不透明
查看>>
《java JDK7 学习笔记》之接口与多态
查看>>
LeetCode 96:Unique Binary Search Trees
查看>>
kernel-char设备的建立
查看>>
DVWA-CSRF
查看>>
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>
android的用户定位(一)
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
html块级元素和行级元素的区别和使用
查看>>
for循环嵌套
查看>>
寒冬夜行人
查看>>
poj1151 Atlantis
查看>>