title: Using CompletableFuture.runAsync() vs ForkJoinPool.execute()
body: <p>Without passing an <code>Executor</code> to <code>CompletableFuture.runAsync()</code>, the common <code>ForkJoinPool</code> is used. Instead, for a simple task (e.g., I do not need to chain different tasks) that I want to be executed asynchronously, I might just use <code>ForkJoinPool.commonPool().execute()</code>. </p>
  
  <p>Why should one be preferred over the other? E.g., does <code>runAsync()</code> have any substantial overhead with respect to <code>execute()</code>? Does the former have any specific advantages over the latter?</p>