/* * $Id$ * * Copyright 2008 Glencoe Software, Inc. All rights reserved. * Use is subject to license terms supplied in LICENSE.txt */ package ome.services.scheduler; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.quartz.Scheduler; /** * Produces a <a href="http://www.opensymphony.com/quartz/Quartz</a> * {@link Scheduler} which automatically loads all the triggers it can find. * * @author Josh Moore, josh at glencoesoftware.com * @since Beta4.2.1 */ public class ThreadPool { private final static Logger log = LoggerFactory.getLogger(ThreadPool.class); private final LinkedBlockingQueue<Runnable> queue; private final ThreadFactory factory; private final ExecutorService executor; public ThreadPool(int minThreads, int maxThreads, long msTimeout) { queue = new LinkedBlockingQueue<Runnable>(); factory = null; executor = new ThreadPoolExecutor(minThreads, maxThreads, msTimeout, TimeUnit.MILLISECONDS, queue); // factory } public ExecutorService getExecutor() { return executor; } public int size() { return queue.size(); } }