Rumah  >  Artikel  >  Java  >  Cara menggunakan operasi aliran selari CompletableFuture dalam Java

Cara menggunakan operasi aliran selari CompletableFuture dalam Java

WBOY
WBOYasal
2023-06-26 14:46:241269semak imbas

CompletableFuture di Java ialah kelas berkuasa yang boleh melaksanakan pengaturcaraan tak segerak dan beberapa operasi aliran lanjutan Salah satu aplikasi penting ialah operasi aliran selari.

Penstriman selari adalah untuk membahagikan koleksi kepada beberapa bahagian, memprosesnya dalam urutan yang berbeza, dan akhirnya menggabungkan hasilnya.

Sebelum Java 8, Stream in Java hanya boleh diproses secara bersiri, tetapi operasi strim selari telah ditambahkan dalam Java 8 untuk meningkatkan prestasi serentak program.

Mari kita lihat contoh dahulu:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
list.parallelStream().forEach(System.out::println);

Dalam contoh di atas, kami menggunakan kaedah parallelStream untuk mendapatkan aliran selari. Kaedah parallelStream mengembalikan aliran selari Untuk koleksi, aliran selari boleh membahagikan koleksi kepada beberapa bahagian, setiap bahagian diproses dalam urutan yang berbeza, dan kemudian hasilnya digabungkan.

Pada masa yang sama, kami juga boleh menggunakan CompletableFuture untuk melaksanakan operasi aliran selari. Berikut ialah contoh:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
    list.parallelStream().forEach(System.out::println);
});
future.join();

Dalam contoh di atas, kami menggunakan kaedah runAsync CompletableFuture untuk mencipta tugasan tak segerak Kaedah parallelStream digunakan dalam tugasan untuk mendapatkan aliran selari untuk pemprosesan, dan akhirnya kaedah gabungan digunakan untuk. tunggu tugasan selesai.

Selain menggunakan kaedah runAsync, kami juga boleh menggunakan kaedah supplyAsync untuk mencipta tugasan tak segerak dan mengembalikan hasil contohnya:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
CompletableFuture<List<Integer>> future = CompletableFuture.supplyAsync(() -> {
    return list.parallelStream().map(i -> i * 2).collect(Collectors.toList());
});
List<Integer> result = future.join();
System.out.println(result);

Dalam contoh di atas, kami menggunakan kaedah supplyAsync CompletableFuture untuk mencipta. tugas tak segerak dan pulangan Hasil daripada jenis Senaraic0f559cc8d56b43654fcbe4aa9df7b4a. Kaedah parallelStream digunakan dalam tugasan untuk mendapatkan aliran selari untuk pemprosesan, dan akhirnya kaedah gabungan digunakan untuk menunggu tugasan dilaksanakan, dan hasil pulangan adalah jenis Listc0f559cc8d56b43654fcbe4aa9df7b4a.

Untuk meringkaskan, CompletableFuture dalam Java ialah kelas yang sangat berkuasa yang bukan sahaja boleh melaksanakan pengaturcaraan tak segerak, tetapi juga melaksanakan operasi aliran selari. Apabila menggunakan CompletableFuture, kita perlu memberi perhatian kepada isu keselamatan benang dan menggunakan operasi aliran selari yang munasabah untuk meningkatkan prestasi serentak program.

Atas ialah kandungan terperinci Cara menggunakan operasi aliran selari CompletableFuture dalam Java. 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