private int doRampUp(int rampUpInterval, int rampUpStep, int rampUpInitialThread, int rampUpInitialSleep) {
			int threadNumber = 0;
			int waitingTime;
			if (Grinder.grinder != null) {
				threadNumber = Math.max(Grinder.grinder.getThreadNumber(), 0);
			}
			try {
				waitingTime = getWaitingTime(rampUpInterval, rampUpStep,
						rampUpInitialThread, rampUpInitialSleep,
						threadNumber);
				if (waitingTime != 0) {
					if (Grinder.grinder != null) {
						Grinder.grinder.getLogger().info("thread-{} is sleeping {} ms for ramp-up", threadNumber,
								waitingTime);
					}
					sleeper.sleepNormal(waitingTime, 0);
				}

				return waitingTime;
			} catch (Sleeper.ShutdownException e) {
				throw new RuntimeException(e);
			}
		}
The number of worker threads that have been created but not run to completion.
ngrinder-runtime/src/main/java/net/grinder/engine/process/GrinderProcess.java