第一种继承Thread
第二种直接实现Runnable
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
第三种用FutureTask + Callable,FutureTask可以取消,Callable可以返回运行结果
new Thread(new FutureTask<Object>(new Callable<Object>() {
@Override
public Object call() throws Exception {
return null;
}
})).start();
第四种线程池(其实就是第一种+第三种)
ExecutorService、ScheduledThreadPoolExecutor、ScheduledFuture
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10, new ThreadFactory() {
AtomicInteger index = new AtomicInteger(1);
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "name"+ (index.getAndIncrement()));
}
});
ScheduledFuture<?> future = executor.schedule(new Runnable() {
@Override
public void run() {
}
},200, TimeUnit.MILLISECONDS);
future.cancel(true);
参考链接http://blog.youkuaiyun.com/u011480603/article/details/75332435