0、序
在游戏工程地开发过程中,定时器功能是一般游戏必不可少的功能,同时,在其他类型的项目中,也会时常需要用到定时器的方法。例如游戏中建造一个建筑需要倒计时等。下面从单线程和多线程两个方面实现定时器的功能。
1、单线程(schedule)
首先我们需要一个单独的定时任务类,继承TimerTask,用来表示具体的定时任务,单独提出来封装成一个类,方便管理和实现:
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Future;
public class SystemTimerTask extends TimerTask{
private long taskID;//任务ID
private long runtime;//倒计时的具体时间(以秒为单位)
private ConcurrentHashMap> futureMap;
public SystemTimerTask(Long taskID,long runtime) {
this.taskID = taskID;
this.runtime = runtime;
}
@Override
public void run() {
System.out.println("Time Remain: "+this.runtime);
if (this.runtime-- <= 0 ) {
try {