Java两种延时——thread和timer

在Java中有时候需要使程序暂停一点时间,称为延时。普通延时用Thread.sleep(int)方法,这很简单。它将当前线程挂起指定的毫秒数。如

[java] view plain copy

  1. try
  2. {
  3. Thread.currentThread().sleep(1000);//毫秒
  4. }
  5. catch(Exception e){}

在这里需要解释一下线程沉睡的时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。

但是如果要使用精确延时,最好使用Timer类:

[c-sharp] view plain copy

  1. Timer timer=new Timer();//实例化Timer类
  2. timer.schedule(new TimerTask(){
  3. public void run(){
  4. System.out.println("退出");
  5. this.cancel();}},500);//五百毫秒

这种延时比sleep精确。上述延时方法只运行一次,如果需要运行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 则每间隔2秒执行MyTask()

时间: 2024-08-24 23:03:51

Java两种延时——thread和timer的相关文章

两种停止Thread的方式

当你想要依据某些条件终结thread的时候,有两种最常见的方式. 设定标记 最常见停止thread的方式是设定某些标记来表示该thread应该要停止了.thread可以周期性地查询标记以判别它是否应该退出.如例: package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {     public stati

JAVA 两种方法实现多线程(继承Thread和实现Runnable接口)

1 package h14; 2 3 public class Demo { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 Thread cat = new Cat(); 11 cat.start(); 12 Runnable dog = new Dog(); 13 Thread t = new Thread(dog);

java两种定时器

第一种:循环执行的程序 import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** * java定时器 * @author lin * */public class Scheduled

java两种序列化(hessian与java自带)性能实验分析报告

序列化的5w2h分析 what:序列化是一种将java对象流化的机制 how:将一个实现了Serializable接口的对象的状态写入byte[],传输到另外一个地方,将其读出进行反序列化得对象(含状态).状态就是类中的属性是含有值的. why:方便对象在网络间进行传播,并且可以随时把对象持久化到数据库.文件等系统里 when:对象需要远程过程调用,缓存到文件或DB中(hessian,rmi,ejb) where:发送接口处,写入文件的入口处 who:发送端序列化,接收端反序列化 how muc

java两种创建String对象的区别

public class StringTest{     public static void main(String[] args){         String s1="abc";//只会在字符串常量池中创建一个"abc"字符串对象         String s2=new String("eieie");//会在字符串常量池中创建一个"hello"字符串对象,并且会在堆中再创建一个字符串对象     } } //第二

java两种单例模式

第一种 1 package com.atguigu.javase; 2 import java.io.IOException; 3 4 /** 5 * @author _aL0n4k 6 * @version 1.0 7 * @time 2015年9月2日 下午6:12:52 8 */ 9 public class Singleton_HungerMode { //单例模式 - 饥饿式 10 private Singleton_HungerMode() {} //把构造器设置为private,这

Java两种核心机制

1.Java虚拟机 2.垃圾回收

Java 两种方式实现Token校验

方法一:AOP 代码如下定义一个权限注解 [java] view plain copy package com.thinkgem.jeesite.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Targe

C语言、Java两种方式下的——规定范围内不重复随机数

示例1:C语言版 #include <stdio.h> #include <stdlib.h> #include <time.h> //随机产生规定个数的不重复数字 int findSame(int *arr, int in, int n); int main() { //设置随机种子 srand((int)time(0)); int arr[40] = {0}, tmp, length = 0; while(length <= 39) { tmp = (40 *