Threads allow programs to execute multiple tasks simultaneously. In Java, threads are lightweight processes that exist within a process and share its resources. The key benefits of multithreading include taking advantage of multiprocessor systems and simplifying programming models. However, multithreading also introduces risks like race conditions and deadlocks that must be addressed through synchronization and thread safety.