Computer multiprogramming is the allocation of computing resources to more than one concurrent application, job or user ("program" in this nomenclature). It is distinguishable from monoprogramming (or uniprogramming) in which only a single program may be run at a time.