code: public void startNewThread(Runnable runnable) throws InterruptedException {
          if (TraceComponent.isAnyTracingEnabled()
              && tc.isEntryEnabled())
              SibTr.entry(tc, "startNewThread");
  
          if (_consumerThreadPool == null) {
              createConsumerThreadPool();
          }
          try {
              _consumerThreadPool.execute(runnable,
                                          ThreadPool.EXPAND_WHEN_QUEUE_IS_FULL_WAIT_AT_LIMIT);
          } catch (ThreadPoolQueueIsFullException e) {
              // Exception should never occur as we are waiting when the queue is
              // full.
              FFDCFilter
                              .processException(
                                                e,
                                                "com.ibm.ws.sib.processor.impl.MessageProcessor.startNewThread",
                                                "1:2705:1.445", this);
          }
  
          if (TraceComponent.isAnyTracingEnabled()
              && tc.isEntryEnabled())
              SibTr.exit(tc, "startNewThread");
      }
docs: Starts a new thread from the MP Consumers Thread Pool Only consumer
  threads should use this thread pool.
  
  @param runnable
  @throws InterruptedException