Cara menggunakan kumpulan benang dalam Java 7 untuk melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala
Dalam pengaturcaraan berbilang benang, kumpulan benang ialah teknologi yang biasa digunakan, yang boleh menguruskan penciptaan dan pemusnahan benang secara berkesan, meningkatkan kecekapan prestasi dan kecekapan. Dalam Java 7, rangka kerja Pelaksana boleh dengan mudah melaksanakan kumpulan benang dan melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala. Artikel ini menerangkan cara menggunakan kumpulan benang untuk melaksanakan fungsi ini, bersama-sama dengan contoh kod yang sepadan.
Di Java, anda boleh menggunakan antara muka ExecutorService untuk mencipta dan mengurus kumpulan benang. Cara paling mudah ialah menggunakan salah satu kaedah statik kelas Pelaksana. Contohnya, anda boleh menggunakan kaedah Executors.newFixedThreadPool(int n) untuk mencipta kumpulan benang bersaiz tetap, dengan n mewakili bilangan utas.
ExecutorService executor = Executors.newFixedThreadPool(5);
Seterusnya, tugasan boleh diserahkan ke thread pool untuk dilaksanakan. Tugasan boleh diserahkan kepada kumpulan benang menggunakan kaedah execute(). Sebagai contoh, katakan terdapat kelas MyTask yang melaksanakan antara muka Runnable Tasks boleh diserahkan dengan cara berikut:
executor.execute(new MyTask());
Jika anda mahu tugasan dilaksanakan secara berkala, anda boleh menggunakan Pelaksana. Kaedah .newScheduledThreadPool(int n) Buat kumpulan benang penjadualan. Di mana n mewakili bilangan utas. Kemudian, anda boleh menggunakan kaedah scheduleAtFixedRate(Arahan boleh dijalankan, long initialDelay, tempoh panjang, unit TimeUnit) untuk menyerahkan tugas kepada kumpulan benang untuk pelaksanaan berkala.
ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(2); scheduledExecutor.scheduleAtFixedRate(new MyTask(), initialDelay, period, TimeUnit.SECONDS);
Dalam kod di atas, initialDelay mewakili masa kelewatan (dalam saat) untuk pelaksanaan pertama tugasan dan tempoh mewakili tempoh tugasan (dalam saat).
Semasa pelaksanaan tugas, hasil pelaksanaan tugas boleh diperolehi melalui objek Masa Depan. Objek Masa Depan mewakili hasil operasi tak segerak, dan nilai pulangan boleh diperolehi melalui kaedah get(). Selepas melaksanakan tugas, anda boleh mendapatkan objek Masa Depan melalui kaedah submit().
Future<Integer> future = executor.submit(new MyTask(), 100); int result = future.get();
Dalam kod di atas, kaedah submit() boleh menerima objek Boleh Panggil sebagai parameter dan mengembalikan objek Masa Depan. Dengan memanggil kaedah get(), anda boleh mendapatkan hasil pelaksanaan tugas Boleh Panggil.
Apabila kolam benang tidak lagi diperlukan, ia harus ditutup untuk mengeluarkan sumber. Anda boleh menggunakan kaedah shutdown() untuk menutup kumpulan benang. Kumpulan benang akan terus melaksanakan tugas sehingga tugasan selesai.
executor.shutdown();
Selain itu, anda juga boleh menggunakan kaedah shutdownNow() untuk menutup kumpulan benang. Walau bagaimanapun, kaedah ini cuba untuk mengganggu semua melaksanakan tugas dan mengembalikan senarai tugas yang tidak dilaksanakan.
executor.shutdownNow();
Ringkasnya, rangka kerja Pelaksana boleh dengan mudah melaksanakan kumpulan benang dan melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala. Dalam Java 7, menggunakan kumpulan benang boleh meningkatkan prestasi dan kecekapan program berbilang benang. Saya harap artikel ini akan membantu anda menggunakan kumpulan benang dalam Java untuk melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala.
Sumber rujukan:
Atas ialah kandungan terperinci Cara menggunakan kumpulan benang dalam Java 7 untuk melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!