美文网首页
new Thread 和 线程池的使用

new Thread 和 线程池的使用

作者: Scene_shoot | 来源:发表于2020-04-20 17:33 被阅读0次

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);
}
});
}


相关文章

网友评论

      本文标题:new Thread 和 线程池的使用

      本文链接:https://www.haomeiwen.com/subject/sqfjihtx.html