🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**1. 预定执行应用场景** 需要在设定一定的时间后才运行线程,或周期性地执行某一个线程。 <br/> **2. 创建线程池的方法** * java.util.concurrent.Executors 5.0 * `ScheduledExecutorService newScheduledThreadPool(int thread)` 返回一个线程池,使用给定的线程数来调度任务。 * `ScheduledExecutorService newSingleThreadScheduledExecutor()` 返回一个执行器,它在一个单独线程中调度任务。 **3. 将任务提交到线程池的方法** * java.util.concurrent.ScheduleExecutorService 5.0 * `ScheduledFuture<V> schedule(Callable<V> task, long time, TimeUnit unit)` * `ScheduledFuture<?> schedule(Runnable task, long time, TimeUnit unit)` 预定在指定的时间之后执行任务。 * `ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long initialDelay, long period, TimeUnit unit)` 预定在initialDelay时间后,按period时间间隔周期性地执行任务。 * `ScheduleFuture<?> scheduleWithFixedDelay(Runnable task, long initialDelay, long delay, TimeUnit unit)` 预定在initialDelay时间后,按delay时间间隔周期性地执行任务。 **4. 使用预定执行线程的步骤** ``` // 1. 创建线程池 ScheduledExecutorService pool = Executors.newScheduledThreadPool(2); // 2. 提交任务到线程池,counter为实现Runnable,或Callable接口的对象 ScheduledFuture<Integer> task = pool.schedule(counter, 300L, TimeUnit.MILLISECONDS ); // 3. 如果要取消一个任务,则调用cancel方法 task.cancel(true); // 4. 完成所有任务后,关闭线程池 pool.shutdown(); ```