Samtidighet er et begrep innenfor informatikken. Det refererer til evnen til å utføre forskjellige deler av et dataprogram, en algoritme eller et problem utenfor rekkefølge eller i en delvis ordnet mengde, uten å påvirke resultatet. Dette tillater parallelle beregninger av utførende enheter, noe som kan forbedre ytelsen i superskalære prosessorer, flerkjerners mikroprosessor og systemer med flerprosessering. I teknisk forstand refererer samtidighet til nedbrytbarheten til et program, en algoritme eller et problem i komponenter som utføres utenfor rekkefølge eller delvis ordnet.[1]
Den canadiske programvareutvikleren Rob Pike (f. 1956) har definert samtidighet som sammensetningen av uavhengige utførende beregninger.[2] Samtidighet er ikke parallell utførelse. Samtidighet handler om å håndtere flere ting samtidig, mens parallell utførelse handler om å utføre flere ting samtidig. Samtidighet handler om struktur, mens parallell utførelse handler om eksekvering. Samtidighet er en måte å strukturere et problem på, slik at problemet kan løses (men ikke nødvendigvis) gjennom parallell eksekvering.[3]
En rekke matematiske modeller er utviklet for generelle samtidige beregninger. Eksempler er Petri nets, process calculi, Parallel random access-machine, actor model og Reo Coordination Language.