В многопоточной среде программы могут быть разделены на части, называемыми потоками выполнения (threads), которые выполняются одновременно. В терминах программы "поток" – это прости функция, которая может также вызывать другие функции программы. Программа начинает выполнятся со своего главного (первичного) потока, который в традиционных программах на языке С является функцией main, а в Windows-программах – WinMain. Будучи выполняемой, функция может создавать новые потоки обработки, выполняя системный вызов с указанием функции инициализации потока (initial threading function). Операционная система в вытесняющем режиме переключает управление между потоками подобно тому, как она это делает с процессами. Таким образом, многопоточность есть реализация принципа многозадачности внутри программы.