Coroutines: lightweight threads for async programming. Benefits: sequential code style for async operations, structured concurrency, cancellation support, no callback hell. Key concepts: suspend functions, CoroutineScope, Dispatchers (Main, IO, Default), launch (fire-and-forget), async (returns result). Use for: network calls, database operations, any blocking work.