Why Use Threads? Parallel execution - if we have several CPUs, we may execute our code in parallel - completing its execution faster. Unlike processes, context-switching between threads is usually faster. Unlike processes - communications between threads can be done by using their common address space. Threads allow the application to remain responsive to user input, while performing heavy calculations and I/O operations.