Java-tråde | Sådan opretter du en tråd i Java

Der er to måder at oprette en tråd på:

  1. Ved at udvide trådklassen
  2. Ved at implementere Runnable interface.

Tråd klasse:

Thread-klassen giver konstruktører og metoder til at skabe og udføre operationer på en tråd. Thread-klassen udvider Object-klassen og implementerer Runnable-grænseflade.

Almindeligt anvendte Constructors of Thread klasse:

  • Tråd()
  • Tråd (strengnavn)
  • Tråd (Kørbar r)
  • Tråd (Runnable r, String name)

Almindelig anvendte metoder i trådklassen:

    public void run(): bruges til at udføre handling for en tråd. offentlig ugyldig start(): starter udførelsen af ​​tråden.JVM kalder run()-metoden på tråden. offentlig ugyldig søvn (lange millisekunder): Får den aktuelt eksekverende tråd til at gå i dvale (midlertidigt ophører med udførelsen) i det angivne antal millisekunder. public void join(): venter på at en tråd dør. public void join(lange millisekunder): venter på, at en tråd dør i de angivne millisekunder. public int getPriority(): returnerer trådens prioritet. public int setPriority(int priority): ændrer trådens prioritet. offentlig streng getName(): returnerer navnet på tråden. public void setName(String name): ændrer navnet på tråden. offentlig tråd nuværende tråd(): returnerer referencen til tråden, der kører i øjeblikket. public int getId(): returnerer id'et for tråden. offentlig Thread.State getState(): returnerer trådens tilstand. offentlig boolean isAlive(): tester om tråden er i live. offentligt ugyldigt udbytte(): får det aktuelt kørende trådobjekt til midlertidigt at pause og tillade andre tråde at køre. offentlig ugyldig suspendering(): bruges til at suspendere tråden (afskrevet). offentligt ugyldigt CV(): bruges til at genoptage den suspenderede tråd (afskrevet). offentlig ugyldig stop(): bruges til at stoppe tråden (afskrevet). public boolean isDaemon(): tester om tråden er en dæmontråd. public void sætDaemon(boolsk b): markerer tråden som dæmon eller brugertråd. public void interrupt(): afbryder tråden. offentlig boolean er afbrudt(): tester om tråden er blevet afbrudt. offentlig statisk boolesk afbrudt(): tester om den aktuelle tråd er blevet afbrudt.

Kørbar grænseflade:

Den Runnable-grænseflade skal implementeres af enhver klasse, hvis instanser er beregnet til at blive eksekveret af en tråd. Kørbar grænseflade har kun én metode kaldet run().

    public void run(): bruges til at udføre handling for en tråd.

Starter en tråd:

Det start() metode of Thread-klassen bruges til at starte en nyoprettet tråd. Den udfører følgende opgaver:

  • En ny tråd starter (med ny callstack).
  • Tråden flyttes fra New state til Runnable-tilstand.
  • Når tråden får en chance for at udføre, vil dens target run()-metode køre.

1) Java-trådseksempel ved at udvide trådklassen

Filnavn: 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(); } }  

Produktion:

 thread is running...  

2) Java Thread Eksempel ved at implementere Runnable interface

Filnavn: 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(); } }  

Produktion:

 thread is running...  

Hvis du ikke udvider Thread-klassen, vil dit klasseobjekt ikke blive behandlet som et trådobjekt. Så du skal eksplicit oprette Thread-klasseobjektet. Vi sender objektet for din klasse, der implementerer Runnable, så din klasse run()-metode kan udføres.

3) Brug af trådklassen: tråd (strengnavn)

Vi kan direkte bruge Thread-klassen til at skabe nye tråde ved hjælp af konstruktørerne defineret ovenfor.

Filnavn: MyThread1.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); } }  

Produktion:

 My first thread  

4) Brug af trådklassen: tråd (kørbar r, strengnavn)

Overhold følgende program.

Filnavn: MyThread2.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); } }  

Produktion:

 My new thread Now the thread is running ...