Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Melaksanakan Kelewatan dan Jeda Tepat dalam Java While Loops?

Bagaimanakah Saya Boleh Melaksanakan Kelewatan dan Jeda Tepat dalam Java While Loops?

Mary-Kate Olsen
Lepaskan: 2024-12-08 21:43:16
asal
558 orang telah melayarinya

How Can I Implement Precise Delays and Pauses in Java While Loops?

Melaksanakan Kelewatan dalam Java

Di Java, terdapat beberapa cara untuk memperkenalkan kelewatan atau jeda dalam program. Untuk menangani keperluan untuk fungsi ini dalam gelung sementara, di mana anda memerlukan masa menunggu tertentu, mari kita terokai pilihan yang tersedia dan kelebihan masing-masing.

1. Menggunakan TimeUnit

Untuk keperluan menunggu yang mudah, java.util.concurrent.TimeUnit menyediakan kaedah khusus. Anda boleh menentukan unit masa dan tempoh yang dikehendaki, seperti TimeUnit.SECONDS.sleep(1) untuk berhenti seketika. Begitu juga, anda boleh menggunakan TimeUnit.MINUTES.sleep(1) untuk kelewatan satu minit.

2. ScheduledExecutorService dengan scheduleAtFixedRate/scheduleWithFixedDelay

Untuk kelewatan yang lebih tepat dan boleh dikonfigurasikan, pertimbangkan untuk menggunakan ScheduledExecutorService. Kaedah scheduleAtFixedRate() membolehkan anda melaksanakan tugas pada selang waktu tertentu, tanpa mengira pelaksanaan yang lalu. scheduleWithFixedDelay(), sebaliknya, memperkenalkan kelewatan berdasarkan masa penyiapan tugasan sebelumnya.

Sebagai contoh, untuk menjalankan tugas setiap saat menggunakan ScheduledExecutorService, anda boleh menggunakan kod berikut:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class DelayExample {
    public static void main(String[] args) {
        ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
        executorService.scheduleAtFixedRate(App::myTask, 0, 1, TimeUnit.SECONDS);
    }

    private static void myTask() {
        System.out.println("Running");
    }
}
Salin selepas log masuk

. Pertimbangan Drift dan Fleksibiliti

Walaupun TimeUnit.sleep() kelihatan mudah, ia boleh memperkenalkan drift dari semasa ke semasa, kerana pelaksanaan sebenar dan tempoh tidur mungkin berbeza sedikit. Selain itu, ia tidak mempunyai fleksibiliti dari segi mengawal masa tugasan yang tepat.

. Alternatif Disyorkan untuk Penjadualan Tepat

Untuk kelewatan yang lebih tepat dan terkawal, ScheduledExecutorService amat dinasihatkan. Ia membolehkan penjadualan yang tepat, pada kadar tetap dan dengan kelewatan tetap, menjadikannya lebih sesuai untuk senario di mana ketepatan masa adalah penting.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Kelewatan dan Jeda Tepat dalam Java While Loops?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan