Threads are lightweight processes that share the same address space. The Linux implementation uses clone() to create threads that have separate thread IDs but share other attributes like the virtual memory. Pthreads provides objects and functions for thread management including creation, attributes, mutual exclusion with mutexes and condition variables, cancellation, and thread-specific data.