package org.atriasoft.pngencoder; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class PngEncoderDeflaterExecutorService { private static class Holder { private static final ExecutorService INSTANCE = Executors.newFixedThreadPool(PngEncoderDeflaterExecutorService.NUM_THREADS_IS_AVAILABLE_PROCESSORS, PngEncoderDeflaterExecutorServiceThreadFactory.getInstance()); } public static int NUM_THREADS_IS_AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors(); static ExecutorService getInstance() { return Holder.INSTANCE; } private PngEncoderDeflaterExecutorService() {} }