Why Are Threads Good?
For some problems, threads can increase throughput by running simultaneously on separate CPUs
For some problems, threads can provide faster access to expensive shared resources (e.g., a large cache)
For some problems, threads can provide a simpler programming environment than event-driven models