Java 自从 5.0 以来,提供了线程池。线程的目标执行对象可以共享线程池中有限数目的线程对象。
在使用java JDK 提供的线程池一般分为 3 步:
1)创建线程目标对象,可以是不同的,例如程序中的 Runnner;
2)使用 Executors 创建线程池,返回一个 ExecutorService类型的对象;
3)使用线程池执行线程目标对象,exec.execute(run);
最后,结束线程池中的线程,exec.shutdown()。
以下是Java提供的一些API工具
1)public static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,在需要时使用提供的 ThreadFactory 创建新线程。
2)public static ThreadFactory defaultThreadFactory()
3)public static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。
4)public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
创建一个线程池,它可安排在给定延迟后运行命令或者定期执行命令。
5)void execute(Runnable command)
在未来某个时间执行给定的命令。该命令可能在新的线程、已入池的线程或者正调用的线程中执行,这由 Executor 实现决定。
6))void shutdown()
启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用。