What is the rationale for choosing one over the other? Only difference I could infer after reading the documentation is that runAsync takes Runnable as an input parameter and supplyAsync takes Supplier as an input parameter.
This stackoverflow post discusses the motivation behind using Supplier with supplyAsync method but it still does not answer when to prefer one over the other.