A programming paradigm that allows multiple tasks to run concurrently without blocking each other.