Menyelaraskan Operasi Berbilang Benang: Memastikan Integriti Data dalam Java
Apabila bekerja dengan aplikasi berbilang benang, adalah penting untuk memastikan semua rangkaian telah melengkapkan tugas sebelum melaksanakan operasi kritikal pada data yang dikongsi. Dalam kes anda, anda mempunyai lima utas secara serentak mengambil data daripada web dan mengisi medan dalam kelas penimbal. Untuk mengesahkan dan menyimpan data penimbal lengkap dalam pangkalan data, anda memerlukan mekanisme untuk dimaklumkan apabila semua utas telah menyelesaikan kerja mereka.
Pendekatan yang disyorkan untuk menguruskan kumpulan benang adalah melalui penggunaan ExecutorService, yang memudahkan proses penciptaan dan pengurusan benang. Begini cara anda boleh melaksanakannya dalam Java:
// Create an ExecutorService to manage the thread pool ExecutorService es = Executors.newCachedThreadPool(); // Launch the individual tasks using execute() for(int i=0; i<5; i++) { es.execute(new Runnable() { /* Your task definition here */ }); } // Shutdown the ExecutorService to prevent new tasks from being submitted es.shutdown(); // Wait for the tasks to complete using awaitTermination() try { boolean finished = es.awaitTermination(1, TimeUnit.MINUTES); // The tasks have finished or the timeout has been reached } catch(InterruptedException e) { // Handle the interruption scenario }
Dengan menggunakan ExecutorService, anda boleh memastikan dengan cekap semua tugasan telah menyelesaikan kerja mereka dalam jangka masa yang ditetapkan. Setelah kaedah awaitTermination() menandakan selesainya, anda boleh meneruskan dengan mengesahkan dan menyimpan data penimbal dalam pangkalan data dengan yakin.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Semua Benang Selesai Sebelum Operasi Pangkalan Data dalam Aplikasi Java Berbilang Benang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!