blob: 4f1568ef2cdd2ebf65ee185c8256960962354d41 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 1997-2007 by ProSyst Software GmbH
* http://www.prosyst.com
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* ProSyst Software GmbH - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.internal.util.threadpool;
/**
* This interface is registered as a service in the framework. It allows bundles
* to specify the amount of threads they will need for their normal work. A
* bundle may be executing no more than a specified number of threads at the
* same time. This interface is provided in order to prevent a scenario where
* one bundle allocates all threads, thus freezing all other thread requestors.
*
* @author Pavlin Dobrev
* @version 1.0
*/
public interface ThreadPoolFactory {
/**
* Gets reference to the thread pool, by specifying how many threads will be
* simultaneously engaged by the requesting bundle. All execution requests
* above this number are put in a waiting queue until a threads is free.
*
* @param poolSize
* count of threads that can be simultaneously used by the
* requestor
* @param sizeIsInPercents
* indicates if the poolSize is percent of the maximum number of
* threads in the pool (true) or is a fixed count (false)
* @return reference to the thread pool manager
*/
public ThreadPoolManager getThreadPool(int poolSize, boolean sizeIsInPercents);
}