Garanta que o código no retorno de chamada CompletableFuture seja executado após

Diz que tenho isso:

public void foo(){
     CompletableFuture.delayedExecutor(1, TimeUnit.MILLISECONDS).execute(() -> {                 
         doSomethingA();                
      });       
      doSomethingB();        
}

Existe alguma garantia de que doSomethingB (); sempre será executado antes de doSomethingA () ;? Algo me diz comthread preemption, é possível, embora improvável, que doSomethingA () possa ser executado primeiro?

questionAnswers(1)

yourAnswerToTheQuestion