Java-tråder | Hvordan lage en tråd i Java

Det er to måter å lage en tråd på:

  1. Ved å utvide trådklassen
  2. Ved å implementere Runnable-grensesnitt.

Trådklasse:

Trådklassen gir konstruktører og metoder for å lage og utføre operasjoner på en tråd. Trådklassen utvider Objektklassen og implementerer kjørbart grensesnitt.

Vanlig brukte Constructors of Thread-klassen:

  • Tråd()
  • Tråd (strengnavn)
  • Tråd (Kjørbar r)
  • Tråd (Kjørbar r, strengnavn)

Vanlige metoder i trådklassen:

    public void run(): brukes til å utføre handling for en tråd. offentlig ugyldig start(): starter kjøringen av tråden.JVM kaller run()-metoden på tråden. offentlig ugyldig søvn (lange millisekunder): Får den kjørende tråden til å hvile (midlertidig opphører kjøringen) i det angitte antallet millisekunder. public void join(): venter på at en tråd skal dø. offentlig ugyldig deltakelse (lange millisekunder): venter på at en tråd dør i de angitte millisekunder. public int getPriority(): returnerer prioritet til tråden. offentlig int setPriority(int priority): endrer prioritet til tråden. offentlig streng getName(): returnerer navnet på tråden. public void setName(strengnavn): endrer navnet på tråden. offentlig tråd gjeldende tråd(): returnerer referansen til tråden som kjøres for øyeblikket. offentlig int getId(): returnerer id-en til tråden. offentlig Thread.State getState(): returnerer tilstanden til tråden. offentlig boolesk isAlive(): tester om tråden er i live. offentlig ugyldig avkastning(): fører til at trådobjektet som kjører for øyeblikket midlertidig stopper og lar andre tråder kjøres. public void suspend(): brukes til å suspendere tråden (avskrevet). offentlig ugyldig CV(): brukes til å gjenoppta den suspenderte tråden (avskrevet). offentlig ugyldig stopp(): brukes til å stoppe tråden (avskrevet). offentlig boolsk isDaemon(): tester om tråden er en demon-tråd. public void setDaemon(boolsk b): merker tråden som demon eller brukertråd. offentlig ugyldig avbrudd(): avbryter tråden. offentlig boolsk er avbrutt(): tester om tråden har blitt avbrutt. offentlig statisk boolsk avbrutt(): tester om den gjeldende tråden er avbrutt.

Kjørbart grensesnitt:

Runnable-grensesnittet bør implementeres av enhver klasse hvis forekomster er ment å bli utført av en tråd. Kjørbart grensesnitt har bare én metode kalt run().

    public void run(): brukes til å utføre handling for en tråd.

Starter en tråd:

De start()-metoden of Thread-klassen brukes til å starte en nyopprettet tråd. Den utfører følgende oppgaver:

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

1) Java-trådeksempel ved å utvide 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(); } }  

Produksjon:

 thread is running...  

2) Java-trådeksempel ved å implementere Runnable-grensesnitt

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

Produksjon:

 thread is running...  

Hvis du ikke utvider Thread-klassen, vil ikke klasseobjektet ditt bli behandlet som et trådobjekt. Så du må eksplisitt opprette Thread-klasseobjektet. Vi sender objektet til klassen din som implementerer Runnable slik at klassen run()-metoden kan kjøres.

3) Bruke trådklassen: tråd(strengnavn)

Vi kan bruke Thread-klassen direkte til å skape nye tråder ved å bruke konstruktørene definert 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); } }  

Produksjon:

 My first thread  

4) Bruk av trådklassen: tråd (kjørbar r, strengnavn)

Følg 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); } }  

Produksjon:

 My new thread Now the thread is running ...