Rumah > Java > javaTutorial > teks badan

Cara menggunakan operasi aliran selari CompletableFuture dalam Java

WBOY
Lepaskan: 2023-06-26 14:46:24
asal
1288 orang telah melayarinya

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

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

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

Dalam contoh di atas, kami menggunakan kaedah supplyAsync CompletableFuture untuk mencipta. tugas tak segerak dan pulangan Hasil daripada jenis Senarai. 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 List.

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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan