Korutine

En korutine er en betegnelse anvendt inden for datalogi om et stykke programkode, en subrutine, der kan afvikles ved siden af andre korutiner, idet et overordnet program skifter mellem at køre de enkelte korutiner. Specielt for korutiner er, at der anvendes frivillig tidsdeling i modsætning til egentlige parallelle rutiner, der anvender tvungen tidsdeling. Dvs. hver kørende korutine skal på passende tidspunkter signalere til det overordnede program, at der evt. kan skiftes til en anden korutine, hvis denne i øvrigt er i en tilstand, så den venter på køretid. Sker dette frivillige skifte ikke, fungerer systemet ikke. Korutiner kan have adskillige steder i koden, hvor de tillader et skifte.

Korutiner anvendes bl.a. i programmeringssproget Simula, hvor de kan benyttes til at modellere forskellige systemer. Korutiner er tilgængelige i flere andre programmeringssprog som f.eks. Modula-2, Ruby, Lua og Go. I andre tilfælde kan de implementeres ved hjælp af særlige biblioteksrutiner.