Threads are lightweight processes that can be used to improve concurrency and resource utilization. They allow multiple tasks to be performed simultaneously within the same process address space. The main advantages of multithreading are improved responsiveness, increased resource sharing, better economy compared to processes, and improved scalability on multi-core systems. Common thread libraries include POSIX pthreads, Win32 threads, and Java threads. Examples of multithreading include performing I/O while processing user input in a word processor or serving multiple web requests concurrently in a server.