线程池是java5之后新增的功能,使用呢线程池也至少是java5的jdk。
什么是线程池呢,就先准备好若干个线程等待执行任务,只要任务来了,存放线程的容器就是线程池,然后从池子拿出一个线程来让这个线程进行服务。
好处是什么呢?对于大量的任务来说,节省资源,不用频繁的创建线程和销毁线程带来的资源消耗。
线程池的使用有以下几种方式
创建固定大小的线程池:
ExecutorService threadPool = Executors.newFixedThreadPool(3); threadPool.execute(new Runnable(){ @Override public void run() { //执行的任务代码 } });
创建缓存线程池:
ExecutorService cachedPool = Executors.newCachedThreadPool(); cachedPool.execute(new Runnable(){ @Override public void run() { //业务代码 } });
创建单一线程池( 如何实现线程死了再重新建一个线程)
ExecutorService singlePool = Executors.newSingleThreadExecutor(); singlePool.execute(new Runnable(){ @Override public void run() { //业务代码 } });
关闭线程池:
//当没有任务可运行的时候关闭线程池
singlePool.shutdown();
//立即关闭线程池,不管任务是否执行完毕
singlePool.shutdownNow();
//线程池定时器
ScheduledExecutorService scheduledPool = Executors.newScheduledThreadPool(2);
scheduledPool.schedule(command, delay, unit);
scheduledPool.scheduleAtFixedRate(command, initialDelay, period, unit);
//如何实现某个固定时间执行
scheduledPool.schedule(command, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
本文详细介绍了Java中线程池的概念及其多种创建方式,包括固定大小、缓存及单一线程池等,并解释了线程池如何提高大量任务处理效率,减少资源浪费。
5985

被折叠的 条评论
为什么被折叠?



