首先强调一点,池是一种设计模式,也就是说好多的成本比较高的连接了这些为了提供性能,用一个池来做缓存。比如说字符串池,比如说数据库连接池,这里介绍下线程池。
线程池在系统启动时创建大量空闲的线程,程序将一个Runnable对象传给线程池,线程池会启动一个线程来执行该对象的run方法,当run方法执行结束后,该线程并不会死亡,再次返回到池里面成为了空闲状态,等待执行下一个Runnable对象的run方法。
import java.util.concurrent.*; // 实现Runnable接口来定义一个简单的线程类 class LinkinThread implements Runnable { public void run() { for (int i = 0; i < 100; i++) { //使用了池以后,线程的命名就成了“pool-1-thread-1”这样子 System.out.println(Thread.currentThread().getName() + " " + i); } } } public class ThreadPoolTest { public static void main(String[] args) throws Exception { // 创建一个具有固定线程数(6)的线程池 ExecutorService pool = Executors.newFixedThreadPool(6); // 向线程池中提交两个线程 pool.submit(new LinkinThread()); pool.submit(new LinkinThread()); // 关闭线程池 pool.shutdown(); } }
原文地址:http://blog.csdn.net/u011794238/article/details/43528759