Dalam aplikasi berbilang benang, menyelaraskan penyiapan berbilang tugas adalah penting untuk pengendalian data yang cekap. Soalan ini menangani senario khusus menunggu sehingga semua urutan menyelesaikan kerja mereka untuk memastikan integriti data sebelum menyimpannya dalam pangkalan data.
Penyelesaian yang disyorkan memanfaatkan kelas ExecutorService , yang menyediakan cara mudah untuk mengurus kumpulan benang. Dengan menggunakan newCachedThreadPool(), kumpulan fleksibel dicipta yang berskala secara automatik mengikut permintaan. Setiap urutan dalam kumpulan ini melaksanakan tugasan Boleh Dijalankan.
Setelah semua tugasan diserahkan kepada pelaksana, kaedah shutdown() dipanggil untuk menamatkan kumpulan dengan anggun. Walau bagaimanapun, kaedah awaitTermination() digunakan untuk menjeda pelaksanaan sehingga semua tugasan selesai dalam tempoh masa yang ditetapkan. Jika tamat masa dicapai tanpa semua tugas selesai, bendera boolean selesai kekal palsu.
Sampel kod yang disediakan menunjukkan pendekatan ini:
ExecutorService es = Executors.newCachedThreadPool(); for (int i = 0; i < 5; i++) { es.execute(new Runnable() { /* Your task */ }); } es.shutdown(); boolean finished = es.awaitTermination(1, TimeUnit.MINUTES); // All tasks have finished or the time has been reached.
Dalam contoh ini, lima utas dicipta dan dilaksanakan serentak menggunakan ExecutorService. Selepas menyerahkan semua tugasan, program menunggu selama satu minit sehingga semua rangkaian menyelesaikan kerja mereka. Setelah semua rangkaian selesai, atur cara boleh mengesahkan dan menyimpan data dalam pangkalan data.
Dengan menggunakan teknik ini, pembangun boleh menyelaraskan penyiapan benang dengan berkesan dan memastikan ketekalan data sebelum melaksanakan operasi seterusnya. Ia membolehkan pengendalian data yang cekap dan menghalang potensi isu integriti data.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Semua Benang Java Selesai Sebelum Pengesahan dan Penyimpanan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!