code: public void startWorkers() throws Exception {
      mWorkers = new ArrayList<>();
      for (int i = 0; i < mNumWorkers; i++) {
        mWorkers.add(WorkerProcess.Factory.create());
      }
  
      for (final WorkerProcess worker : mWorkers) {
        Runnable runWorker = () -> {
          try {
            worker.start();
          } catch (InterruptedException e) {
            // this is expected
          } catch (Exception e) {
            // Log the exception as the RuntimeException will be caught and handled silently by
            // JUnit
            LOG.error("Start worker error", e);
            throw new RuntimeException(e + " \n Start Worker Error \n" + e.getMessage(), e);
          }
        };
        Thread thread = new Thread(runWorker);
        thread.setName("WorkerThread-" + System.identityHashCode(thread));
        mWorkerThreads.add(thread);
        thread.start();
      }
  
      for (WorkerProcess worker : mWorkers) {
        TestUtils.waitForReady(worker);
      }
    }
docs: Configures and starts the worker(s).