Maison  >  Article  >  Java  >  Une exploration du cycle de vie des threads Java

Une exploration du cycle de vie des threads Java

PHPz
PHPzoriginal
2024-04-11 14:15:01683parcourir

Les threads Java passent par les étapes de cycle de vie suivantes : Création : Créés en héritant de la classe Thread ou en implémentant l'interface Runnable. Préparation : après la création, le thread entre dans l'état de préparation et attend l'exécution de la planification. En cours d'exécution : planifié pour l'exécution, le code est en cours d'exécution. Blocage : le code ne peut pas être exécuté lorsqu'un obstacle est rencontré. Attendre : attendre activement les autres threads. Sleep : appelez la méthode sleep() pour dormir et le code ne peut pas être exécuté. Notification : réveillez-vous via la méthode notify() ou notifyAll(). Décès : une fois l'exécution terminée ou une erreur survenue, l'exécution ne peut plus être planifiée.

Une exploration du cycle de vie des threads Java

Exploration du cycle de vie des threads Java

En Java, un thread est un processus léger avec sa propre pile, son état et son contexte d'exécution. Chaque fil a un cycle de vie unique, comprenant les étapes suivantes :

1. Création

Le cycle de vie du fil commence par la création, qui peut être réalisée par :

// 通过继承 Thread 类实现
Thread thread1 = new Thread() {
    public void run() {
        // 线程执行的代码
    }
};

// 通过实现 Runnable 接口实现
Runnable task = new Runnable() {
    public void run() {
        // 线程执行的代码
    }
};
Thread thread2 = new Thread(task);

2. , il entrera dans l'état prêt. À l’heure actuelle, l’exécution du thread n’a pas encore été planifiée.

3. Exécuter

Une fois l'exécution planifiée du thread, il entrera dans l'état d'exécution. Un thread en cours d’exécution exécute du code.

4. Blocage

Si un fil rencontre un obstacle, comme l'attente d'une ressource, il entrera dans un état de blocage. À ce stade, le thread ne peut pas exécuter de code.

5. En attente

Les fils de discussion peuvent attendre activement d'autres fils de discussion. Après avoir appelé la méthode wait(), le thread entrera dans l'état d'attente.

6. Sleepwait() 方法后,线程将进入等待状态。

6. 休眠

线程也可以调用 sleep() 方法使其休眠一定时间。在休眠期间,线程无法执行代码。

7. 通知

等待或休眠的线程可以通过调用 notify()notifyAll()

Le fil peut également appeler la méthode sleep() pour le faire dormir pendant un certain temps. Pendant le sommeil, les threads ne peuvent pas exécuter de code.

7. Notification

Les threads en attente ou en veille peuvent être réveillés en appelant la méthode notify() ou notifyAll().

8. Mort

Lorsqu'un thread termine son exécution ou qu'une erreur se produit, il entrera dans l'état de mort. Un thread dans un état mort ne peut plus être planifié pour son exécution.

Cas pratique🎜🎜🎜Créez un fil de discussion et imprimez le résultat : 🎜
class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();

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

        System.out.println("Thread state: " + thread.getState()); // 输出线程状态
    }
}
🎜Sortie : 🎜
Thread is running
Thread state: RUNNABLE
🎜Cela indique que le fil de discussion est créé avec succès et entre dans l'état d'exécution. 🎜

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