import java.util.concurrent.ForkJoinPool;
import java.util.stream.LongStream;

public class KolamKhusus {
    public static void main(String[] args) throws Exception {
        // Teknik kendali ukuran pool: jalankan pipeline paralel DI DALAM
        // tugas milik ForkJoinPool khusus. Terminal operation stream akan
        // memakai pekerja pool ini, bukan commonPool bersama.
        ForkJoinPool pool = new ForkJoinPool(2);
        try {
            long jumlah = pool.submit(() ->
                    LongStream.rangeClosed(1, 1_000_000)
                            .parallel()
                            .map(n -> n * n)
                            .sum())
                    .get();
            System.out.println("hasil di pool khusus (2 pekerja): " + jumlah);
        } finally {
            pool.shutdown();
        }
    }
}
