Start here. This is the direct spoken answer to practice first.
Why this question matters
Thread-pool starvation is a production reliability topic. It usually appears as high latency, hanging requests, or poor throughput even when CPU is not fully maxed out.
Thread-pool starvation happens when the application needs worker threads but too many are blocked or busy. In a .NET API, this can happen from .Result, .Wait(), long CPU work in request threads, or unbounded blocking operations. Symptoms include slow requests, timeouts, and queued work that does not run promptly. I would inspect logs, runtime counters, and dumps to see what threads are doing.