Theare are following difference between start and run method of Thread in Java:-
1. start() method creates a new thread and it has own execution scenario. But, run() method does not create any new thread. Instead it execute the run method in current running thread synchronously.
2. start() method calls run() method asynchronously, which changes the state of new Thread to Runnable. If you are using run() method directly then you are not using the multi-threading features.