code: private static HystrixThreadPoolKey initThreadPoolKey(HystrixThreadPoolKey threadPoolKey, HystrixCommandGroupKey groupKey, String threadPoolKeyOverride) {
          if (threadPoolKeyOverride == null) {
              // we don't have a property overriding the value so use either HystrixThreadPoolKey or HystrixCommandGroup
              if (threadPoolKey == null) {
                  /* use HystrixCommandGroup if HystrixThreadPoolKey is null */
                  return HystrixThreadPoolKey.Factory.asKey(groupKey.name());
              } else {
                  return threadPoolKey;
              }
          } else {
              // we have a property defining the thread-pool so use it instead
              return HystrixThreadPoolKey.Factory.asKey(threadPoolKeyOverride);
          }
      }
docs: /*
  ThreadPoolKey
  
  This defines which thread-pool this command should run on.
  
  It uses the HystrixThreadPoolKey if provided, then defaults to use HystrixCommandGroup.
  
  It can then be overridden by a property if defined so it can be changed at runtime.