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

Bolehkah Java 8 Parallel Streams Menggunakan Kolam Benang Tersuai?

Susan Sarandon
Lepaskan: 2024-12-28 14:11:28
asal
951 orang telah melayarinya

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();
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan