Threads execute code. Each process starts out with a single primary thread that executes the entry point function (usually WinMain or the "C" main function). This thread can create secondary threads by calling the CreateThread function. Through thread scheduling, multiple threads appear to execute simultaneously. Only one thread can actually be running at a time, so the operating system gives each thread a small amount of processor time (called a quantum) based on a scheduling algorithm based on thread priorities.
Threads are created by applications to
Wait for some event to occur, such as termination of a process or receipt of information through a communications channel
Perform background processing, such as calculations or database ...