code: protected void readyGo(ConcurrentParallelCall runnerLambda, ConcurrentParallelOption option) {
          if (isEmptyParallel(option)) {
              return;
          }
          createCountdownRace(option).readyGo(new LaCountdownRaceExecution() {
  
              protected Map<String, Object> threadCacheMap; // not null after ready
              protected AccessContext accessContext; // null allowed after ready
              protected CallbackContext callbackContext; // null allowed after ready
  
              @Override
              public void readyCaller() { // in caller thread
                  threadCacheMap = doInheritThreadCacheContext(); // not null
                  accessContext = doInheritAccessContext(); // null allowed
                  callbackContext = doInheritCallbackContext(() -> {}); // null allowed, dummy call here
              }
  
              @Override
              public void hookBeforeCountdown() { // in new thread
                  doPrepareThreadCacheContext(threadCacheMap);
                  doPreparePreparedAccessContext(accessContext);
                  doPrepareCallbackContext(callbackContext);
              }
  
              @Override
              public void execute(LaCountdownRaceRunner runner) {
                  runnerLambda.callback(createConcurrentParallelRunner(runner));
              }
  
              @Override
              public void hookBeforeGoalFinally() { // in new thread
                  doClearCallbackContext();
                  doClearPreparedAccessContext();
                  doClearThreadCacheContext();
              }
  
              @Override
              public boolean isThrowImmediatelyByFirstCause() {
                  return option.isThrowImmediatelyByFirstCause();
              }
          });
      }
docs: --------