java安全编码指南之:ThreadPool的使用
简介 在java中,除了单个使用Thread之外,我们还会使用到ThreadPool来构建线程池,那么在使用线程池的过程中需要注意哪些事情呢? 一起来看看吧。 java自带的线程池 java提供了一个非常好用的工具类 Executors ,通过Executors我们可以非常方便的创建出一系列的线程池: Executors.newCachedThreadPool,根据需要可以创建新线程的线程池。线程池中曾经创建的线程,在完成某个任务后也许会被用来完成另外一项任务。 Executors.newFixedThreadPool(int nThreads) ,创建一个可重用固定线程数的线程池。这个线程池里最多包含nThread个线程。 Executors.newSingleThreadExecutor() ,创建一个使用单个 worker 线程的 Executor。即使任务再多,也只用1个线程完成任务。 Executors.newSingleThreadScheduledExecutor() ,创建一个单线程执行程序,它可安排在给定延迟后运行命令或者定期执行。 提交给线程池的线程要是可以被中断的 ExecutorService线程池提供了两个很方便的停止线程池中线程的方法,他们是shutdown和shutdownNow。 shutdown不会接受新的任务,但是会等待现有任务执行完毕