Maison  >  Article  >  Java  >  Java utilise la fonction sleep() de la classe Thread pour suspendre l'exécution du thread.

Java utilise la fonction sleep() de la classe Thread pour suspendre l'exécution du thread.

WBOY
WBOYoriginal
2023-07-24 12:07:561669parcourir

Java utilise la fonction sleep() de la classe Thread pour suspendre l'exécution du thread

En Java, les threads sont l'unité de base de l'exécution simultanée. Afin de réaliser la suspension et le contrôle des threads, Java fournit la méthode sleep() de la classe Thread. La méthode sleep() permet au thread de faire une pause pendant un certain temps avant de poursuivre l'exécution. Cet article explique comment utiliser la méthode sleep() pour suspendre l'exécution d'un thread, avec des exemples de code.

La méthode sleep() de la classe Thread est une méthode statique, qui peut être appelée directement via la classe Thread. Le prototype de cette méthode est le suivant :

public static void sleep(long millis)

            throws InterruptedException

où, le paramètre millis représente le nombre de millisecondes de pause. Lorsque la méthode sleep() est appelée, le thread actuel suspend l'exécution, entre dans l'état de blocage et se réveille automatiquement pour continuer l'exécution après le nombre de millisecondes spécifié. Il convient de noter que la méthode sleep() lancera InterruptedException, une gestion des exceptions est donc requise lors de l'utilisation de cette méthode.

Voici un exemple simple qui montre comment utiliser la méthode sleep() pour suspendre l'exécution d'un thread :

public class SleepExample {

    public static void main(String[] args) {
        // 创建一个新线程
        Thread thread = new Thread(new MyRunnable());

        // 启动线程
        thread.start();

        try {
            // 主线程暂停500毫秒
            Thread.sleep(500);

            // 中断线程
            thread.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    static class MyRunnable implements Runnable {

        @Override
        public void run() {
            try {
                // 线程执行任务
                System.out.println("线程开始执行任务");

                // 线程暂停1秒
                Thread.sleep(1000);

                // 继续执行任务
                System.out.println("线程继续执行任务");
            } catch (InterruptedException e) {
                // 线程被中断,抛出异常
                System.out.println("线程被中断,任务终止");
                return;
            }

            // 线程执行完成
            System.out.println("线程任务执行完成");
        }
    }
}

Dans l'exemple ci-dessus, un nouveau thread est d'abord créé et démarré. Ensuite, le thread principal appelle la méthode sleep() pour suspendre l'exécution pendant 500 millisecondes, puis interrompt le nouveau thread. Dans la méthode run() du nouveau thread, le thread affiche d'abord "le thread commence à exécuter la tâche", puis appelle la méthode sleep() pour suspendre l'exécution pendant 1 seconde, et enfin affiche "le thread continue d'exécuter la tâche". Si le thread principal interrompt le nouveau thread avant que celui-ci n'appelle la méthode sleep(), le nouveau thread lancera une exception InterruptedException et affichera "Le thread a été interrompu et la tâche a été terminée".

En utilisant la méthode sleep() de la classe Thread, nous pouvons contrôler avec précision la suspension et la reprise des threads pour obtenir une coordination et une synchronisation inter-thread dans une programmation multi-thread.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn