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!