📄 threadpool.java
字号:
/* * Copyright 2004-2005 OpenSymphony * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * *//* * Previously Copyright (c) 2001-2004 James House */package org.quartz.spi;import org.quartz.SchedulerConfigException;/** * <p> * The interface to be implemented by classes that want to provide a thread * pool for the <code>{@link org.quartz.core.QuartzScheduler}</code>'s use. * </p> * * <p> * <code>ThreadPool</code> implementation instances should ideally be made * for the sole use of Quartz. Most importantly, when the method * <code>blockForAvailableThreads()</code> returns a value of 1 or greater, * there must still be at least one available thread in the pool when the * method <code>runInThread(Runnable)</code> is called a few moments (or * many moments) later. If this assumption does not hold true, it may * result in extra JobStore queries and updates, and if clustering features * are being used, it may result in greater imballance of load. * </p> * * @see org.quartz.core.QuartzScheduler * * @author James House */public interface ThreadPool { /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /** * <p> * Execute the given <code>{@link java.lang.Runnable}</code> in the next * available <code>Thread</code>. * </p> * * <p> * The implementation of this interface should not throw exceptions unless * there is a serious problem (i.e. a serious misconfiguration). If there * are no immediately available threads <code>false</code> should be returned. * </p> * * @return true, if the runnable was assigned to run on a Thread. */ boolean runInThread(Runnable runnable); /** * <p> * Determines the number of threads that are currently available in in * the pool. Useful for determining the number of times * <code>runInThread(Runnable)</code> can be called before returning * false. * </p> * * <p>The implementation of this method should block until there is at * least one available thread.</p> * * @return the number of currently available threads */ int blockForAvailableThreads(); /** * <p> * Called by the QuartzScheduler before the <code>ThreadPool</code> is * used, in order to give the it a chance to initialize. * </p> */ void initialize() throws SchedulerConfigException; /** * <p> * Called by the QuartzScheduler to inform the <code>ThreadPool</code> * that it should free up all of it's resources because the scheduler is * shutting down. * </p> */ void shutdown(boolean waitForJobsToComplete); int getPoolSize();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -