Use Supplier if it takes nothing, but returns something.
Use Consumer if it takes something, but returns nothing.
Use Callable if it returns a result and might throw (most akin to Thunk in general CS terms).
Use Runnable if it does neither and cannot throw.