Er zijn twee manieren om een thread te maken:
- Door de Thread-klasse uit te breiden
- 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:
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
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 ...