Apabila bekerja dengan berbilang utas, menyelaraskan pelaksanaannya dan memastikan mereka menyelesaikan tugas mereka sebelum meneruskan adalah penting. Dalam senario ini, anda mempunyai lima urutan yang mengambil data daripada web secara serentak dan mengisi kelas penimbal. Matlamat anda adalah untuk mengesahkan data dalam penimbal dan menyimpannya dalam pangkalan data hanya apabila semua rangkaian telah menyelesaikan kerja mereka.
Satu cara berkesan untuk mencapai ini di Java ialah dengan memanfaatkan ExecutorService, yang menyediakan API yang mudah untuk menguruskan kumpulan benang. Begini cara anda boleh melaksanakan pendekatan ini:
ExecutorService es = Executors.newCachedThreadPool(); // Submit the tasks to the executor service for (int i = 0; i < 5; i++) { es.execute(new Runnable() { // Implement your task here }); } // Shut down the executor service after submitting the tasks es.shutdown(); // Wait for all tasks to finish or for a specified timeout boolean finished = es.awaitTermination(1, TimeUnit.MINUTES); // If all tasks have finished, proceed with validation and database storage if (finished) { validateBufferData(); storeDataInDatabase(); }
Dengan menggunakan kaedah awaitTermination, anda boleh menyekat urutan utama sehingga semua tugasan dalam perkhidmatan pelaksana telah selesai atau sehingga tamat masa yang ditentukan telah dicapai. Ini memastikan pengesahan data dan storan pangkalan data hanya berlaku apabila semua rangkaian telah menyelesaikan kerjanya.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Semua Benang Java Selesai Sebelum Meneruskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!