Benefits
Less time to create a new thread than a process, because the newly created thread uses the current process address space.
Less time to terminate a thread than a process.
Less time to switch between two threads within the same process, partly because the newly created thread uses the current process address space.
Less communication overheads -- communicating between the threads of one process is simple because the threads share everything: address space, in particular. Data produced by one thread is immediately available to all the other threads.