Principales compétences et concepts
• Comprendre les principes fondamentaux de la création de plusieurs fils de discussion
• Connaître la classe Thread et l'interface Runnable
• Créer un fil de discussion
• Créez plusieurs fils de discussion
• Déterminer quand un fil de discussion se termine
• Utiliser les priorités des fils de discussion
• Comprendre la synchronisation des threads
• Utilisez des méthodes synchronisées
• Utilisez des blocs synchronisés
• Promouvoir la communication entre les fils de discussion
• Suspendre, reprendre et arrêter les discussions
Threads : Ce sont des chemins d'exécution indépendants au sein d'un programme.
Multitâche : Il peut être basé sur des processus (plusieurs programmes) ou des threads (plusieurs tâches dans un même programme).
Avantages :
Une plus grande efficacité lors de l'utilisation du temps d'inactivité.
Meilleure utilisation des systèmes multicœurs/multiprocesseurs.
Création et gestion des fils de discussion
Classes et interfaces :
Thread : Classe qui encapsule les threads.
Runnable : Interface utilisée pour définir des threads personnalisés.
Méthodes de classe de fil de discussion courantes :
Créer des fils de discussion :
class MyThread implements Runnable { String threadName; MyThread(String name) { threadName = name; } public void run() { System.out.println(threadName + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + threadName + ", count is " + i); } } catch (InterruptedException e) { System.out.println(threadName + " interrupted."); } System.out.println(threadName + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread myThread = new MyThread("Child #1"); Thread thread = new Thread(myThread); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
Résultat attendu :
Main thread starting. . Child #1 starting. .. In Child #1, count is 0 ... In Child #1, count is 1 ... Main thread ending.
Extension de classe de fil :
class MyThread extends Thread { MyThread(String name) { super(name); } public void run() { System.out.println(getName() + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + getName() + ", count is " + i); } } catch (InterruptedException e) { System.out.println(getName() + " interrupted."); } System.out.println(getName() + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread thread = new MyThread("Child #1"); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
remarque : La méthode sleep() fait suspendre l'exécution du thread dans lequel elle est appelée
pendant la période spécifiée de millisecondes.
table à livres
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!