Thread (computing)
Many programming languages, operating systems, and other software development environments support what are called "threads", or "lightweight" threads of execution. This allows a program to split itself into two or more simultaneously running tasks.
Threads are distinguished from traditional multi-tasking processes in that processes are typically independent, carry considerable state information, are managed by the operating system, and interact only through system-provided inter-process communication mechanisms. Multiple threads, on the other hand, typically share the state information of a single process, share memory and other resources directly, and are not managed by the operating system (though some later operating systems may have special facilities for them).
The Java programming language, for example, is designed to facilitate multi-threaded programs.