Tokio's select! macro lets you wait on multiple futures simultaneously, proceeding with the first one that completes. I use it for timeouts, graceful shutdown, and racing I/O operations. Each branch is a pattern match on the future's output. If multiple futures are ready, one is chosen randomly to avoid starvation. The key is that select! cancels the other branches when one completes (by dropping them). For shutdown, I race the main logic against a signal future. For caching, I race a fast cache lookup against a slow database fetch. The macro is powerful but has subtleties (like biased for priority). It's essential for writing responsive async services.