Thread is an independent path of execution through program code. The JVM gives each thread its own method-call stack to track execution. When multiple threads execute byte-code instruction sequences in the same program concurrently, it is known as multithreading. Java accomplishes multithreading through its Thread class, with each Thread object describing a single thread of execution that occurs in its run() method.