码迷,mamicode.com
首页 > 编程语言 > 详细

线程池

时间:2018-04-19 20:26:34      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:one   exe   nts   sub   execution   extends   hsi   city   interface   

线程池继承链

public class ThreadPoolExecutor extends AbstractExecutorService

 

public abstract class AbstractExecutorService implements ExecutorService

 

public interface ExecutorService extends Executor

void shutdown();

Future<?> submit(Runnable task);

<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)

 

public interface Executor

void execute(Runnable command);

 

构造方法

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)

 

队列

private BlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(int capacity);

队列继承链

public class ArrayBlockingQueue<E> extends AbstractQueue<E>

        implements BlockingQueue<E>, java.io.Serializable

 

handler

ThreadPoolExecutor.AbortPolicy()

抛出java.util.concurrent.RejectedExecutionException异常

ThreadPoolExecutor.CallerRunsPolicy()

重试添加当前的任务,他会自动重复调用execute()方法

ThreadPoolExecutor.DiscardOldestPolicy()

抛弃旧的任务

ThreadPoolExecutor.DiscardPolicy()

抛弃当前的任务

 

周期线程池:

继承链

public class ScheduledThreadPoolExecutor

        extends ThreadPoolExecutor

        implements ScheduledExecutorService

 

public interface ScheduledExecutorService extends ExecutorService

延时执行

public ScheduledFuture<?> schedule(Runnable command,

                                       long delay, TimeUnit unit);

延时后周期执行,若执行时间超过周期,执行时间顺延。

public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,

                                                  long initialDelay,

                                                  long period,

                                                  TimeUnit unit);

延时后,执行完毕后继续延时执行。

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,

                                                     long initialDelay,

                                                     long delay,

                                                     TimeUnit unit);

构造方法

ScheduledThreadPoolExecutor(int corePoolSize)

 

防止任务执行遇到异常取消后续执行

public void run() {

    //捕获所有的异常,保证定时任务能够继续执行

    try {

        //doBusiness();

    } catch (Throwable e) {

        // donothing

    }

}

 

线程池

标签:one   exe   nts   sub   execution   extends   hsi   city   interface   

原文地址:https://www.cnblogs.com/aaroncnblogs/p/8885890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!