Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyesuaikan Kolam Benang untuk Aliran Selari Java 8?

Bagaimanakah Saya Boleh Menyesuaikan Kolam Benang untuk Aliran Selari Java 8?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 15:51:10830semak imbas

How Can I Customize Thread Pools for Java 8 Parallel Streams?

Menyesuaikan Kolam Benang untuk Java 8 Aliran Selari

Java 8 memperkenalkan aliran selari, menawarkan keselarian yang cekap untuk operasi intensif data. Walau bagaimanapun, menentukan kumpulan benang tersuai untuk aliran selari kekal sebagai ciri yang sukar difahami. Artikel ini menangani isu ini, mengemukakan penyelesaian menggunakan ForkJoinPool.

Satu kebimbangan utama dengan kumpulan benang lalai ialah potensi untuk menyekat kelakuan. Tugas yang berjalan perlahan dalam satu aliran boleh menghalang pelaksanaan dalam aliran selari yang lain. Ini amat bermasalah dalam aplikasi berbilang benang di mana pengasingan adalah penting.

Untuk mengatasi had ini, anda boleh membuat ForkJoinPool khusus untuk setiap tugas. Setelah melaksanakan strim selari sebagai tugas berasingan dalam ForkJoinPool itu, strim itu kekal terpencil, menggunakan kumpulan benang yang ditentukan dan bukannya yang lalai.

Pertimbangkan coretan kod berikut:

final int parallelism = 4;
ForkJoinPool forkJoinPool = null;
try {
    forkJoinPool = new ForkJoinPool(parallelism);
    final List<Integer> primes = forkJoinPool.submit(() ->
        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 ForkJoinPool baharu dengan selari tertentu dan melaksanakan aliran selari di dalamnya. Strim selari beroperasi dalam kumpulan terpencilnya, menghalang sebarang kemungkinan gangguan daripada utas lain.

Pendekatan ini memberikan kawalan yang lebih besar ke atas peruntukan utas, membolehkan pembangun membahagikan strim selari dan memastikan kecekapan sumber dalam aplikasi berbilang benang.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Kolam Benang untuk Aliran Selari Java 8?. 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