in geode-benchmarks/src/main/java/org/apache/geode/benchmark/tasks/AbstractPrePopulateRegion.java [79:103]
void run(final Map<K, V> region, final LongRange range) throws InterruptedException {
logger.info("*******************************************");
logger.info(" Prepopulating the region ");
logger.info("*******************************************");
final Instant start = Instant.now();
final int numThreads = Runtime.getRuntime().availableProcessors();
final ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);
final List<CompletableFuture<Void>> futures = new ArrayList<>();
for (final LongRange slice : range.slice(numThreads)) {
futures.add(CompletableFuture.runAsync(() -> doPuts(region, slice), threadPool));
}
futures.forEach(CompletableFuture::join);
final Instant finish = Instant.now();
logger.info("*******************************************");
logger.info(" Prepopulating the region completed");
logger.info(" Duration = " + Duration.between(start, finish).toMillis() + "ms.");
logger.info("*******************************************");
threadPool.shutdownNow();
threadPool.awaitTermination(5, TimeUnit.MINUTES);
}