A computer program or routine 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.