Code review comment: What's the purpose of sleep in this place?

Code under review:
void run(int numThread, int runSeconds) {
            try {
                runSql(null, "create database " + db);
            } catch (SQLException e) {
                Assert.fail(e);
            }
            ThreadPoolExecutor executor
                    = (ThreadPoolExecutor) Executors.newFixedThreadPool(numThread);
            tableLoads = new ArrayList<>();
            Random r = new Random(0);
            int scheduleIntervalMs = 200;
            for (int i = 0; i < numTable; i++) {
                int numTablet = r.nextInt(16) + 1;
                int replicationNum = r.nextInt(3) + 1;
                int loadIntervalMs = (r.nextInt(40) + 1) * scheduleIntervalMs;
                TableLoad tableLoad = new TableLoad(db, i, numTablet, replicationNum, loadIntervalMs);
                tableLoads.add(tableLoad);
                executor.submit(() -> {
                    try {
                        tableLoad.createTable();
                    } catch (SQLException e) {
                        error = e;
                    }
                });
                if (error != null) {
                    Assert.fail(error);
                }
            }
            List<Future<?>> futures = new ArrayList<Future<?>>();
            finishedTask = 0;
            long startTs = System.nanoTime();
            int runInterval = runSeconds * 1000 / scheduleIntervalMs;
            for (int i = 0; i < runInterval; i++) {
                for (TableLoad tableLoad : tableLoads) {
                    if (tableLoad.hasTask(i * scheduleIntervalMs)) {
                        futures.add(executor.submit(() -> {
                            try {
                                tableLoad.loadOnce();
                                finishedTask++;
                            } catch (SQLException e) {
                                error = e;
                            }
                        }));
                    }
                }
                if (error != null) {
                    Assert.fail(error);
                }
                try {
                    Thread.sleep(scheduleIntervalMs);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            for (Future<?> future : futures) {
                try {
                    future.get();
                } catch (Exception e) {
                    Assert.fail(e);
                }
            }
            double t = (System.nanoTime() - startTs) / 1e9;
            System.out.printf("numLoad:%d Time: %.2fs, %.2f tps\n", finishedTask, t, finishedTask / t);
        }

Line commented on: try {

Revised code:
void run(int numThread, int runSeconds) {
            try {
                runSql(null, "create database " + db);
            } catch (SQLException e) {
                Assert.fail(e);
            }
            ThreadPoolExecutor executor
                    = (ThreadPoolExecutor) Executors.newFixedThreadPool(numThread);
            tableLoads = new ArrayList<>();
            Random r = new Random(0);
            int scheduleIntervalMs = 200;
            for (int i = 0; i < numTable; i++) {
                int numTablet = r.nextInt(16) + 1;
                int replicationNum = r.nextInt(3) + 1;
                int loadIntervalMs = (r.nextInt(40) + 1) * scheduleIntervalMs;
                TableLoad tableLoad = new TableLoad(db, i, numTablet, replicationNum, loadIntervalMs);
                tableLoads.add(tableLoad);
                executor.submit(() -> {
                    try {
                        tableLoad.createTable();
                    } catch (SQLException e) {
                        error = e;
                    }
                });
                if (error != null) {
                    Assert.fail(error);
                }
            }
            List<Future<?>> futures = new ArrayList<Future<?>>();
            finishedTask = 0;
            long startTs = System.nanoTime();
            int runInterval = runSeconds * 1000 / scheduleIntervalMs;
            for (int i = 0; i < runInterval; i++) {
                for (TableLoad tableLoad : tableLoads) {
                    if (tableLoad.hasTask(i * scheduleIntervalMs)) {
                        futures.add(executor.submit(() -> {
                            try {
                                tableLoad.loadOnce();
                                finishedTask++;
                            } catch (SQLException e) {
                                error = e;
                            }
                        }));
                    }
                }
                if (error != null) {
                    Assert.fail(error);
                }
                try {
                    Thread.sleep(scheduleIntervalMs);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
            for (Future<?> future : futures) {
                try {
                    future.get();
                } catch (Exception e) {
                    Assert.fail(e);
                }
            }
            double t = (System.nanoTime() - startTs) / 1e9;
            System.out.printf("numLoad:%d Time: %.2fs, %.2f tps\n", finishedTask, t, finishedTask / t);
        }