多线程实现方式3(依赖于线程池):
实现Callable<T>接口,重写call方法,T是call()方法返回值,返回值可以通过Future<T>接收,并通过get方法获取;
好处:
可以有返回值;
可以抛出异常;
弊端:
代码较复杂,所以一般不用;
匿名内部类使用多线程:
new Thread(){代码........}.start();(继承自Thread类)
new Thread(new Runnable(){代码......}){(如果在该括号内重写,运行时将运行该括号内的重写)}.start();(实现Runnable接口);
定时器:
定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式运行.在java中,可以通过Timer和TimerTask类来实现定义调度的功能;
Timer:
方法:
1.public Timer():创建一个定时器;
2.public void schedule(TimerTask task,Date time,long period):安排在指定时间执行后重复固定间隔执行;
3.public void schedule(TimerTask task,Date time):安排在指定时间执行;
4.public void schedule(TimerTask task,long dealy,long period):安排在指定延迟执行后,重复固定间隔执行;
5.public void schedule(TimerTask task,long delay):安排在指定延迟后执行;
TimerTask:
方法:
public abstract void run():执行任务;
public boolean cancel():中止计时器;
创建计时器步骤:
1.创建TimerTask子类,重写run方法;
2.创建计时器对象;
3.调用schedule方法执行任务;