Thread的使用
new Thread(new Runnable(){
@override
public void run(){
}
}).start();
new Thread(Runnable runnable).start();
new Thread(FutureTask<V>{Callable callable}).start();
项目中不建议使用new Thread的方式创建线程
new Thread的弊端
1.每次new Thread新建对象性能差。
2.线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机。
3.缺乏更多功能,如定时执行、定期执行、线程中断。
线程池的使用--(先记录一种)
newCachedThreadPool
--创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
--线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 10; i++) {
final int index = i;
try {
Thread.sleep(index * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
cachedThreadPool.execute(new Runnable() {
@Override
public void run() {
System.out.println(index);
}
});
}
网友评论