logo

Java-threads | Hoe maak je een thread in Java?

Er zijn twee manieren om een ​​thread te maken:

  1. Door de Thread-klasse uit te breiden
  2. Door de Runnable-interface te implementeren.

Draadklasse:

Thread-klasse biedt constructors en methoden om bewerkingen op een thread te maken en uit te voeren. Thread-klasse breidt de Object-klasse uit en implementeert de Runnable-interface.

Veelgebruikte constructors van Thread-klasse:

  • Draad()
  • Thread(tekenreeksnaam)
  • Draad (uitvoerbare r)
  • Thread (uitvoerbare r, tekenreeksnaam)

Veelgebruikte methoden voor Thread-klasse:

    publieke leegte run():wordt gebruikt om actie uit te voeren voor een thread.publieke leegte start():start de uitvoering van de thread. JVM roept de run() -methode op de thread aan.openbare lege slaap (lange miliseconden):Zorgt ervoor dat de momenteel uitgevoerde thread gedurende het opgegeven aantal milliseconden in de slaapstand (tijdelijk wordt gestopt) wordt uitgevoerd.publieke leegte join():wacht tot een draad sterft.openbare ongeldige join (lange miliseconden):wacht tot een thread doodgaat gedurende de opgegeven miliseconden.public int getPriority():geeft de prioriteit van de thread terug.public int setPriority(int prioriteit):verandert de prioriteit van de thread.public String getName():retourneert de naam van de thread.public void setName(Stringnaam):verandert de naam van de draad.openbare discussie currentThread():retourneert de referentie van de momenteel uitgevoerde thread.public int getId():geeft de ID van de thread terug.openbare Thread.State getState():geeft de status van de thread terug.public boolean isAlive():test of de draad leeft.openbare leegteopbrengst():zorgt ervoor dat het momenteel uitgevoerde threadobject tijdelijk wordt onderbroken, zodat andere threads kunnen worden uitgevoerd.openbare leegte opschorten():wordt gebruikt om de draad op te schorten (verouderd).openbare ongeldige CV():wordt gebruikt om de opgeschorte draad te hervatten (beëindigd).openbare ongeldige stop():wordt gebruikt om de draad te stoppen (beëindigd).publieke boolean isDaemon():test of de thread een daemon-thread is.public void setDaemon(boolean b):markeert de thread als daemon of gebruikersthread.openbare ongeldige interrupt():onderbreekt de draad.public boolean isInterrupted():test of de draad is onderbroken.openbare statische boolean onderbroken():test of de huidige thread is onderbroken.

Uitvoerbare interface:

De Runnable-interface moet worden geïmplementeerd door elke klasse waarvan de instanties bedoeld zijn om door een thread te worden uitgevoerd. Uitvoerbare interfaces hebben slechts één methode met de naam run().

regisseur Karan Johar
    publieke leegte run():wordt gebruikt om actie uit te voeren voor een thread.

Een draad starten:

De start() methode van Thread-klasse wordt gebruikt om een ​​nieuw gemaakte thread te starten. Het voert de volgende taken uit:

  • Er wordt een nieuwe thread gestart (met een nieuwe callstack).
  • De thread gaat van de status Nieuw naar de status Uitvoerbaar.
  • Wanneer de thread de kans krijgt om uit te voeren, wordt de target run() -methode uitgevoerd.

1) Java Thread-voorbeeld door de Thread-klasse uit te breiden

Bestandsnaam: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Uitgang:

 thread is running... 

2) Java Thread-voorbeeld door de Runnable-interface te implementeren

Bestandsnaam: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Uitgang:

vergelijk met string
 thread is running... 

Als u de klasse Thread niet uitbreidt, wordt uw klasseobject niet behandeld als een threadobject. U moet dus expliciet het Thread-klasseobject maken. We geven het object van uw klasse door dat Runnable implementeert, zodat uw klasse run() -methode kan worden uitgevoerd.

3) De Thread-klasse gebruiken: Thread(String Name)

We kunnen de klasse Thread rechtstreeks gebruiken om nieuwe threads te spawnen met behulp van de hierboven gedefinieerde constructors.

Bestandsnaam: MijnThread1.java

 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Uitgang:

 My first thread 

4) De Thread-klasse gebruiken: Thread(Runnable r, String-naam)

Neem het volgende programma in acht.

Bestandsnaam: MijnThread2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Uitgang:

mysql lijst gebruikers
 My new thread Now the thread is running ...