v20260421 How to Optimise C# (S1E3): Concurrency: Busy-Wait vs Semaphore programming optimisation Why the thread-pool math matters: a busy-wait locks one OS thread per waiting actor. A semaphore lets thousands of sleeping actors share a handful of threads.