Thread startup can be misleading because the code can appear to be performing its function correctly when it is actually being executed by the wrong thread. Invoking the
Thread.start() method instructs the Java runtime to start executing the thread’s
run() method using the started thread. Invoking a
run() method directly is incorrect. When a
run() method is invoked directly, the statements in the
run() method are executed ...