Thread: Chaque tâche est appelée thread. Le fil ne peut pas exister indépendamment, il doit faire partie du processus.
Thread unique: les applications Java communes sont à thread unique. Par exemple, lors de l'exécution d'un programme Helloworld, le processus JVM sera démarré, puis la méthode principale sera exécutée pour générer un fil. La méthode principale est également appelée fil principal.
Multithreading: un programme qui exécute plus d'un thread en même temps s'appelle un programme multithread. Le multithreading peut atteindre l'objectif des programmeurs d'écrire des programmes efficaces pour atteindre l'objectif de profiter pleinement du CPU.
Exemple de code unique:
classe publique SingleThread {public static void main (String [] args) {thread thread = thread.currentThread (); // obtient le thread en cours d'exécution Thread.SetName ("thread unique"); // Renommez le thread.out.println (thread.getName () + "Running"); pour (int i = 0; i <10; i ++) {System.out.println ("Thread est endormi:" + i); essayez {Thread.Sleep (1000); // Thread est endormi, retardé d'une seconde} catch (InterruptedException e) {// TODO Generated Catch Blocke.printStackTrace (); System.out.println ("Erreur de thread");}}}}}Exemple de code multithread:
Remarque: Il existe deux façons d'implémenter le multithreading, l'une est d'hériter de la classe de threads, et l'autre est d'implémenter l'interface Runnable.
Classe de threads héritée pour implémenter
classe publique TestThread {public static void main (String [] args) {thread t1 = new ExtendThread ("t1", 1000); // Créez un thread à l'aide de l'objet de tournage et construisez le nom de thread et le thread Temps de sommeil T2 = new ExtendThread ("T2", 2000); Thread t3 = new ExtendThread ("T3", 3000); t1.start (); // Démarrez le thread et appelez la méthode d'exécution t2.start (); t3.Start ();}} class extendThread étend Thread {// hériter de classe de thread Nom de la chaîne; int time; public extendThread (nom de chaîne, int le temps) {// Construire le nom du thread et l'heure de sommeil this.name = name; this.time = time;} public void run () {// réécriture la méthode d'exécution de la classe de thread try {sleep (time); // Tous les threads ajoutent du sommeil} catch (InterruptedExceptione) {e.printStackTrace (); System.out.println ("Exception d'interruption de thread");} System.out.println ("Le nom est:" + name + ", Thread Sleens:" + Time + "MSEC"); }}Multithreading pour implémenter l'interface Runnable
classe publique RunnableThread {public static void main (String [] args) {runnable r1 = new ImplRunnable ("r1", 1000); // L'interface Runnable doit s'appuyer sur la classe de threads pour créer des threads thread t1 = nouveau thread (R1); // Runnable ne peut pas appeler la méthode start (), car ce n'est pas un thread, vous devez donc utiliser la classe de threads pour ajouter des threads Runnable R2 = new Imprunnable ("R2", 2000); Thread T2 = nouveau thread (R2); Runnable R3 = New imprunnable (r3 ", 3000); thread t3 = nouveau (R3); T1.start ();); // Démarrez le thread et appelez la méthode d'exécution t2.start (); t3.start ();}} classe implémable implémente Runnable {// héritage de l'interface exécutable Nom de chaîne; int le temps; public imprimnnable (nom de chaîne, intrime) {// Construire le nom de thread et le temps de sommeil this.name = nom; this.time = time;} @ overtidepubl essayez {thread.sleep (time); // Tous les threads ajoutent du sommeil} catch (InterruptedException e) {e.printStackTrace (); System.out.println ("Exception d'interruption de thread");} System.out.println ("Nom est:" + name + ", Thread Sleens:" + Time + "MS");}}Remarque: La classe de threads est en fait une classe qui implémente l'interface Runnable.
Avantages de la mise en œuvre d'interfaces runnables sur des classes de threads hérités