A computer program
is described as reentrant
if it is designed such that a single copy of the program's instructions in memory can be shared by multiple users or separate processes
. The key to the design of a reentrant program is to ensure that no portion of the program code is modified by the different users/processes, and that process-unique information (such as local variables) is kept in a separate area of memory that is distinct for each user or process.
Reentrant programming is key to many systems of multitasking. See thread-safe.