Rumah  >  Artikel  >  Java  >  Cara menggunakan kumpulan benang dalam Java 7 untuk melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala

Cara menggunakan kumpulan benang dalam Java 7 untuk melaksanakan pelaksanaan tugas dan pemprosesan hasil secara berkala

WBOY
WBOYasal
2023-07-30 10:05:10831semak imbas

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.

  1. Buat kumpulan benang

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);
  1. Laksanakan tugas

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());
  1. Pelaksanaan tugasan berkala

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).

  1. Memproses hasil tugasan

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.

  1. Tutup kolam benang

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:

  • Dokumentasi rasmi Oracle: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn