@Test
void testMkdirs() throws InterruptedException {

    final Path rootDir = tempDir.resolve("TestFileUtil_" + System.currentTimeMillis());
    final Path[] dirArray = new Path[10];
    for (int i = 0; i < dirArray.length; i++) {
        dirArray[i] = buildDir(rootDir);
    }
    final AtomicBoolean exception = new AtomicBoolean(false);
    final SimpleExecutor simpleExecutor = new SimpleExecutor(4);
    for (int i = 0; i < 200; i++) {
        final int count = i;
        simpleExecutor.execute(() -> {
            try {
                final Path dir = dirArray[count % dirArray.length];
                FileUtil.mkdirs(dir);
            } catch (final RuntimeException e) {
                e.printStackTrace();
                exception.set(true);
            }
        });
    }
    simpleExecutor.waitForComplete();
    simpleExecutor.stop(false);
    assertThat(exception.get()).isFalse();
    FileUtil.deleteDir(rootDir);
}