@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();

		int done = 0, executing = 0;
		for (OsCmdRunner cmd : commands) {
			if (cmd.isDone()) done++;
			if (cmd.isExecuting()) executing++;
		}

		sb.append("Queue:\n");
		sb.append("\tSize       : " + commands.size() + "\n");
		sb.append("\tExecuting  : " + executing + "\n");
		sb.append("\tDone       : " + done + "\n");
		sb.append("\tCPUs       : " + numThreads + "\n");
		sb.append("\tSleep time : " + sleepTime + "\n");

		for (OsCmdRunner cmd : commands) {
			String status = "Not started";
			if (cmd.isDone()) status = "Done";
			else if (cmd.isExecuting()) status = "Executing";

			sb.append(String.format("\t[%12s]\t%s\n", status, cmd));
		}

		return sb.toString();
	}