Rumah >Java >javaTutorial >Bolehkah Java 8 Parallel Streams Menggunakan Kolam Benang Tersuai?

Bolehkah Java 8 Parallel Streams Menggunakan Kolam Benang Tersuai?

Susan Sarandon
Susan Sarandonasal
2024-12-28 14:11:28971semak imbas

Can Java 8 Parallel Streams Utilize a Custom Thread Pool?

Kolam Benang Tersuai untuk Java 8 Strim Selari

Strim selari Java 8 menyediakan cara yang mudah untuk menyelaraskan operasi dan meningkatkan prestasi. Walau bagaimanapun, dalam senario tertentu, adalah wajar untuk menggunakan kumpulan benang tersuai untuk mengawal peruntukan utas dan membahagikan tugas yang berbeza dalam aplikasi.

Bolehkah Strim Selari Menggunakan Kolam Benang Tersuai?

Pada mulanya, tiada cara yang jelas untuk menetapkan kumpulan urutan tersuai kepada strim selari. Ini boleh menimbulkan cabaran apabila berurusan dengan aplikasi dengan berbilang modul dan keperluan untuk menghalang tugas perlahan daripada menyekat yang lain.

Helah Kolam Gabungan Fork

Walau bagaimanapun, terdapat penyelesaian menggunakan API Fork-Join Pool. Dengan menyerahkan tugasan selari dalam kolam cantuman garpu yang berasingan, adalah mungkin untuk mengasingkannya daripada kumpulan biasa yang digunakan oleh operasi strim. Berikut ialah contoh:

final int parallelism = 4;
ForkJoinPool forkJoinPool = null;
try {
    forkJoinPool = new ForkJoinPool(parallelism);
    final List<Integer> primes = forkJoinPool.submit(() -> {
        // Parallel task here, for example
        IntStream.range(1, 1_000_000).parallel()
                .filter(PrimesPrint::isPrime)
                .boxed().collect(Collectors.toList())
    }).get();
    System.out.println(primes);
} catch (InterruptedException | ExecutionException e) {
    throw new RuntimeException(e);
} finally {
    if (forkJoinPool != null) {
        forkJoinPool.shutdown();
    }
}

Kod ini mencipta kolam gabungan garpu khusus dengan selari yang ditentukan dan menyerahkan pelaksanaan tugas selari kepadanya. Ini membolehkan tugasan yang ditentukan beroperasi dalam kumpulan benang mereka sendiri, memisahkannya daripada kumpulan biasa.

Kesimpulan

Penyelesaian menggunakan kolam cantum garpu menyediakan cara untuk menggunakan kumpulan benang tersuai untuk aliran selari di Java 8. Ia membolehkan kawalan yang lebih halus ke atas peruntukan benang dan pembahagian, membolehkan selari pelaksanaan tugas tanpa penyekatan silang modul.

Atas ialah kandungan terperinci Bolehkah Java 8 Parallel Streams Menggunakan Kolam Benang Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn