Why would the run() method with arguments take priority over the default run() method?
It doesn't. It is purely a detail of the JVM and OS, in its implementation of threads. On some JVM/OS combinations, one may always happen first. On other combos, the other may always happen. And with most combinations, you may see some runs of both.