用优雅的姿势使用和使用线程池
2021-01-29 05:14
标签:返回 rup cep color 解耦合 executor service exce tst 1.使用线程池的目的:(1)减少系统维护线程的开销 (2)解耦合,运行和创建分开 (3)线程可以复用。 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的线程。以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 同时我们需要知道一下两个内容: 01.ExecutorService是Java提供的用于管理线程池的类。该类的两个作用:控制线程数量和重用线程 02.Executors.newCacheThreadPool():可缓存线程池,先查看池中有没有以前建立的线程,如果有,就直接使用。如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务 线程池的创建和使用: 用优雅的姿势使用和使用线程池 标签:返回 rup cep color 解耦合 executor service exce tst 原文地址:https://www.cnblogs.com/zhuomuniao/p/12833405.htmlpublic class NewCachedThreadPoolTest {
public static void main(String[] args) {
// 创建一个可缓存线程池
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i ) {
try {
// sleep可明显看到使用的是线程池里面以前的线程,没有创建新的线程
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
cachedThreadPool.execute(new Runnable() {
public void run() {
// 打印正在执行的缓存线程信息
System.out.println(Thread.currentThread().getName()
+ "正在被执行");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
下一篇:Unity优化风格的着色器