Thread - unit of execution within a process uses for concurrency uses parent process' shared memory space (heap) context switch - cheap shared heap / unique stack, program counter, registers