Simulates a counting semaphore which throttles requests to a particular resource/block of code to prevent overloading the app (JVM) with long running requests which may be CPU/RAM bound.