a technique for executing several independent computer programs simultaneously, e.g. by sequentially taking one instruction from each program