线程池:
如果程序中创建了大量的生命期很短的线程,应该使用线程池。一个线程池中包含许多准备运行的空闲线程。将Runnable对象交给线程池,就会有一个线程调用run方法。当run方法退出时,线程不会死亡,而是在池中准备下一个请求提供服务。
线程池应该做的事:
1、 调用Executors类中静态方法newCachedThreadPool或 newFixedThreadPool
2、 调用submit提交Runnable或Callable对象
3、 如果要取消一个任务,或提交Callabled对象,那就要保存好返回的Future对象。
4、 当不在提交任何任务时,调用shutdown。