what is the difference between thread and runnable in java?
Runnable is an interface which represents a task that could be executed by either a Thread or Executor or some similar means. On the other hand, Thread is a class which creates a new thread. Implementing the Runnable interface doesn't create a new thread. Java Docs clearly explains the difference between them.