public ThreadPoolImpl(int minThreads, int maxThreads, int maxIdleTime) 
        throws IllegalArgumentException {

        if (maxThreads < 1) {
            throw new IllegalArgumentException(
                "maxThreads must be an integral value greater than 0");
        }
        _maxThreads = maxThreads;

        if (minThreads < 0) {
            throw new IllegalArgumentException(
                "minThreads must be an integral " + 
                "value greater than or equal to 0");
        }

        if (minThreads > _maxThreads) {
            throw new IllegalArgumentException(
                "minThreads cannot be greater than maxThreads");
        }
        _minThreads = minThreads;

        if (maxIdleTime < 1) {
            throw new IllegalArgumentException(
                "maxIdleTime must be an integral value greater than 0");
        }
        _maxIdleTime = maxIdleTime;
    }