


Cara menggunakan CompletableFuture dalam Java untuk memberitahu apabila semua elemen diproses
CompletableFuture di Java ialah alat pengaturcaraan tak segerak yang sangat berkuasa. Ia boleh membantu kami melaksanakan penghantaran tugas, pemprosesan, pemberitahuan dan operasi lain semasa pemprosesan tak segerak, sangat memudahkan kesukaran pengaturcaraan tak segerak. Apabila menggunakan CompletableFuture untuk pemprosesan tak segerak, terdapat senario yang perlu dimaklumkan selepas semua elemen diproses Artikel ini akan memperkenalkan cara menggunakan CompletableFuture dalam Java untuk melaksanakan senario ini.
Pertama sekali, anda perlu memahami konsep asas dan penggunaan CompletableFuture. CompletableFuture ialah kelas baharu dalam Java 8 yang menyediakan cara untuk memproses hasil apabila melaksanakan operasi secara tidak segerak. Ia membolehkan kami menggabungkan berbilang operasi tak segerak ke dalam operasi yang lebih kompleks dan menunggu semua operasi tak segerak selesai sebelum meneruskan ke langkah seterusnya.
Dalam senario pemberitahuan apabila semua elemen diproses, kita perlu menggunakan kaedah CompletableFuture: allOf. Kaedah ini boleh menggabungkan berbilang objek CompletableFuture bersama-sama dan mengembalikan objek CompletableFuture baharu selepas menunggu tugas tak segerak semua objek selesai.
Langkah asas menggunakan kaedah allOf adalah seperti berikut:
- Buat beberapa objek CompletableFuture untuk memproses elemen berbeza.
- Panggil kaedah CompletableFuture.allOf, masukkan semua objek CompletableFuture sebagai parameter dan tunggu semua tugas tak segerak selesai.
- Selepas semua tugas tak segerak selesai, kaedah allOf akan mengembalikan objek CompletableFuture baharu, yang boleh digunakan untuk pemprosesan seterusnya.
Di bawah, kami menggunakan contoh untuk menunjukkan cara menggunakan CompletableFuture untuk memberitahu apabila semua elemen diproses mengikut langkah di atas.
Pertama, kita perlu menentukan kelas Tugas untuk mensimulasikan pemprosesan tugas tak segerak. Kod sampel adalah seperti berikut:
import java.util.concurrent.CompletableFuture; public class Task { public CompletableFuture<String> process(String element) { CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { // 模拟异步任务的处理过程 try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } return element.toUpperCase(); }); return future; } }
Dalam kod di atas, kelas Tugas mentakrifkan kaedah proses untuk memproses setiap elemen dan mengembalikan objek CompletableFuture. Dalam kaedah ini, kami menggunakan kaedah CompletableFuture.supplyAsync untuk mensimulasikan pemprosesan tugas tak segerak, menukar elemen kepada huruf besar dan mengembalikannya. Pada masa yang sama, untuk mensimulasikan proses tugas tak segerak yang memakan masa, kami menambah tidur 1 saat pada tugasan itu.
Seterusnya, kami mentakrifkan kelas Utama dan menggunakannya dalam kombinasi dengan kelas Tugas dan CompletableFuture untuk memberitahu apabila semua elemen diproses. Kod sampel adalah seperti berikut:
import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; public class Main { public static void main(String[] args) { List<String> elements = new ArrayList<>(); elements.add("hello"); elements.add("world"); elements.add("java"); Task task = new Task(); List<CompletableFuture<String>> futures = new ArrayList<>(); // 遍历每个元素,并将它们的处理结果封装成一个CompletableFuture对象 for (String element : elements) { CompletableFuture<String> future = task.process(element); futures.add(future); } // 等待所有异步任务完成,将它们的处理结果打印出来 CompletableFuture<Void> allFutures = CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()])); allFutures.thenRun(() -> { System.out.println("所有异步任务已完成:"); for (CompletableFuture<String> future : futures) { try { String result = future.get(); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }); } }
Dalam kod di atas, kami mentakrifkan Senarai untuk menyimpan semua elemen, kemudian mencipta objek Tugas, melelang setiap elemen dan merangkum hasil pemprosesannya ke dalam objek CompletableFuture. Seterusnya, kami menggunakan kaedah CompletableFuture.allOf untuk menunggu semua tugas tak segerak disiapkan, dan selepas semua tugasan selesai, cetak hasil pemprosesan semua tugas melalui objek CompletableFuture yang dikembalikan oleh kaedah allOf.
Apabila kita menjalankan program di atas, kita dapat melihat output berikut:
所有异步任务已完成: HELLO WORLD JAVA
Hasil larian program di atas menunjukkan bahawa semua tugas tak segerak telah diproses dan setiap elemen telah ditukar kepada huruf besar. Pada masa yang sama, kami juga berjaya melaksanakan fungsi pemberitahuan apabila semua elemen diproses.
Untuk meringkaskan, kaedah menggunakan CompletableFuture untuk memberitahu apabila semua elemen diproses ialah:
- Buat beberapa objek CompletableFuture untuk memproses elemen berbeza.
- Panggil kaedah CompletableFuture.allOf, masukkan semua objek CompletableFuture sebagai parameter dan tunggu semua tugas tak segerak selesai.
- Selepas semua tugas tak segerak selesai, kaedah allOf akan mengembalikan objek CompletableFuture baharu, yang boleh digunakan untuk pemprosesan seterusnya.
Secara amnya, CompletableFuture ialah alat pengaturcaraan tak segerak yang sangat mudah yang boleh membantu kami menggabungkan berbilang tugas tak segerak bersama-sama dan memberitahu apabila semua tugasan selesai. Dalam pembangunan sebenar, kami boleh menggunakan CompletableFuture dengan lebih baik untuk meningkatkan keselarasan kod dan kecekapan pelaksanaan berdasarkan kaedah pelaksanaan di atas dan senario perniagaan sebenar.
Atas ialah kandungan terperinci Cara menggunakan CompletableFuture dalam Java untuk memberitahu apabila semua elemen diproses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Walaupun pemberitahuan bukanlah suite terkuat pada iPhone, dalam kemas kini iOS baru-baru ini, Apple telah memperhalusi cara ia muncul. Versi iOS baharu meminimumkan keterlihatan makluman melalui Pusat Pemberitahuan untuk memastikan pengguna mendapat pengalaman yang lebih baik. Dalam artikel ini, kami akan membantu anda mengosongkan pemberitahuan pada iPhone dalam pelbagai cara yang berbeza. Cara untuk mematikan sepanduk pemberitahuan masuk pada iPhone Apabila anda berada di skrin Utama atau aktif menggunakan aplikasi, semua pemberitahuan akan muncul sebagai sepanduk di bahagian atas melainkan anda melumpuhkan ciri ini. Jika anda ingin menyemak pemberitahuan itu kemudian tanpa mengganggu tugas semasa anda, hanya leret sepanduk ke atas untuk mengetepikannya. Ini akan mengalihkan pemberitahuan yang anda terima ke Pusat Pemberitahuan supaya anda boleh

Sistem pengendalian Windows 11 Microsoft mungkin memaparkan cadangan secara berkala sebagai pop timbul pada komputer anda menggunakan sistem pemberitahuan. Sistem cadangan, yang pada asalnya direka bentuk untuk menyediakan petua dan cadangan kepada pengguna untuk menambah baik aliran kerja Windows 11 mereka, hampir sepenuhnya berubah menjadi sistem pengiklanan untuk mempromosikan perkhidmatan dan produk Microsoft. Pop timbul cadangan mungkin mengiklankan langganan Microsoft 365 kepada pengguna, mencadangkan memautkan telefon Android ke peranti atau menyediakan penyelesaian sandaran. Jika pop timbul ini mengganggu anda, anda boleh mengubahsuai sistem anda untuk melumpuhkannya sepenuhnya. Panduan berikut menyediakan cadangan untuk melumpuhkan pop timbul pada peranti yang menjalankan sistem pengendalian Windows 11 Microsoft.

Pada AppleTV, jika anda tidak mahu menggunakan AppleTV Remote untuk memasukkan teks, anda boleh menaip menggunakan iPhone atau iPad berdekatan. Setiap kali medan teks muncul pada AppleTV, pemberitahuan akan muncul pada iPhone atau iPad anda Selepas mengetik pemberitahuan, anda boleh menggunakan papan kekunci pada skrin pada peranti iOS anda untuk memasukkan teks pada AppleTV. Jika anda mendapati pemberitahuan ini menjengkelkan, anda boleh melumpuhkannya pada iPhone atau iPad anda (jika anda mempunyai beberapa AppleTV dan kanak-kanak di rumah, anda akan tahu apa yang kami maksudkan). Jika anda menjalankan iOS/iPadOS 15.1 atau lebih baru, berikut ialah cara untuk melumpuhkannya. Lancarkan pada iPhone atau iPad

Dalam macOS Sonoma dan Safari 17, anda boleh menukar tapak web menjadi "apl web," yang boleh diletakkan dalam dok Mac anda dan boleh diakses seperti mana-mana aplikasi lain tanpa membuka penyemak imbas. Baca terus untuk mengetahui cara ia berfungsi. Terima kasih kepada pilihan baharu dalam penyemak imbas Safari Apple, kini anda boleh menukar mana-mana tapak web di Internet yang anda kerap lawati menjadi "apl web" kendiri yang tinggal dalam dok Mac anda dan sedia untuk anda akses pada bila-bila masa. Apl web berfungsi dengan Kawalan Misi dan Pengurus Peringkat seperti mana-mana apl, dan juga boleh dibuka melalui Launchpad atau SpotlightSearch. Bagaimana untuk menukar mana-mana laman web menjadi

Di Java, kita sering menghadapi senario yang memerlukan operasi tak segerak. Untuk situasi ini, Java8 memperkenalkan kelas CompletableFuture, yang memberikan kami banyak alat pengaturcaraan tak segerak untuk menjadikan pengaturcaraan tak segerak lebih mudah dan lebih mudah. Antaranya, thenCompose dan thenCombine ialah dua kaedah operasi tak segerak gabungan yang biasa digunakan dalam kelas CompletableFuture. 1. Penggunaan thenCompose Kaedah thenCompose digunakan untuk menukar a

Uniapp ialah rangka kerja pembangunan merentas platform berdasarkan Vue.js yang boleh digunakan untuk membangunkan aplikasi yang berjalan pada berbilang platform pada masa yang sama. Apabila melaksanakan fungsi tolak dan pemberitahuan mesej, Uniapp menyediakan beberapa pemalam dan API yang sepadan Perkara berikut akan memperkenalkan cara menggunakan pemalam dan API ini untuk melaksanakan fungsi tolak dan pemberitahuan mesej. 1. Tekan mesej Untuk melaksanakan fungsi tolak mesej, kita boleh menggunakan pemalam uni-push yang disediakan oleh Uniapp. Pemalam ini adalah berdasarkan Tencent Cloud Push Service dan boleh menolak mesej pada berbilang platform

Cara untuk memberitahu orang lain bahawa anda telah tiba di destinasi anda Memberitahu orang lain bahawa anda telah tiba di destinasi anda dengan selamat ialah cara yang paling biasa untuk "mendaftar masuk" dan ia mudah dikendalikan. Berikut ialah langkah untuk menyediakan sebelum anda bersedia untuk memulakan langkah seterusnya dalam perjalanan anda. Buka mesej dan mulakan perbualan dengan orang yang ingin anda hantar daftar masuk Klik ikon tambah (+) di sebelah medan mesej Klik Klik Edit di bahagian bawah gesaan anda ingin pergi ke. Pilih "Selesai" di sudut kanan atas dan hantar "Daftar masuk." "Apabila memasuki destinasi anda, anda boleh memilih mod perjalanan yang berbeza bergantung pada keperluan anda, sama ada dengan kereta, pengangkutan awam atau berjalan kaki. . Pastikan anda memilih peranti yang anda gunakan dengan betul supaya peranti anda boleh menganggarkan dengan tepat tempoh masa yang diperlukan untuk sampai ke destinasi anda. Ini membolehkan anda merancang perjalanan anda dengan lebih baik dan membawa anda ke destinasi anda dengan lebih mudah.

Dalam proses membina aplikasi web menggunakan rangka kerja Beego, kepentingan pemberitahuan ralat adalah jelas. Semasa menulis kod, kami biasanya berurusan dengan pelbagai situasi yang tidak normal, dan untuk beberapa ralat yang tidak diketahui, kami berharap untuk dimaklumkan tepat pada masanya. Artikel ini akan memperkenalkan secara terperinci cara menggunakan rangka kerja Beego untuk melaksanakan pemberitahuan ralat tersuai. 1. Pengetahuan asas pengendalian ralat Sebelum mula memperkenalkan cara menggunakan rangka kerja Beego untuk melaksanakan pemberitahuan ralat tersuai, kita perlu memahami beberapa pengetahuan asas. Pertama, kita perlu mengetahui jenis pengendalian ralat dan cara memilih
