Thread is the basic unit of CPU utilization in an operating system. A single-threaded process can only perform one task at a time, while a multithreaded process can perform multiple tasks simultaneously using threads. Java uses the Thread class and Runnable interface to create and manage threads. The main thread is created automatically, while additional threads can be instantiated by implementing Runnable or extending Thread. Synchronization is needed when threads share resources to prevent race conditions.