code: public void allowCoreThreadTimeOut(boolean value) {
          if (value && keepAliveTime <= 0)
              throw new IllegalArgumentException("Core threads must have nonzero keep alive times");
          if (value != allowCoreThreadTimeOut) {
              allowCoreThreadTimeOut = value;
              if (value)
                  interruptIdleWorkers();
          }
      }
docs: Sets the policy governing whether core threads may time out and
  terminate if no tasks arrive within the keep-alive time, being
  replaced if needed when new tasks arrive. When false, core
  threads are never terminated due to lack of incoming
  tasks. When true, the same keep-alive policy applying to
  non-core threads applies also to core threads. To avoid
  continual thread replacement, the keep-alive time must be
  greater than zero when setting {@code true}. This method
  should in general be called before the pool is actively used.
  
  @param value {@code true} if should time out, else {@code false}
  @throws IllegalArgumentException if value is {@code true}
  and the current keep-alive time is not greater than zero
  
  @since 1.6