logo

Java-trådar | Hur man skapar en tråd i Java

Det finns två sätt att skapa en tråd:

  1. Genom att utöka trådklassen
  2. Genom att implementera ett körbart gränssnitt.

Trådklass:

Trådklassen tillhandahåller konstruktörer och metoder för att skapa och utföra operationer på en tråd. Trådklassen utökar objektklassen och implementerar ett körbart gränssnitt.

Vanligt använda Constructors of Thread klass:

  • Tråd()
  • Tråd (strängnamn)
  • Tråd (körbar r)
  • Tråd (körbar r, strängnamn)

Vanliga metoder för trådklass:

    public void run():används för att utföra åtgärder för en tråd.public void start():startar exekveringen av tråden.JVM anropar run()-metoden på tråden.offentlig void sömn (långa milisekunder):Får den för närvarande körande tråden att vila (avbryter körningen tillfälligt) under det angivna antalet millisekunder.public void join():väntar på att en tråd ska dö.public void join (långa milisekunder):väntar på att en tråd ska dö under de angivna millisekunderna.public int getPriority():returnerar prioritet för tråden.public int setPriority(int priority):ändrar trådens prioritet.public String getName():returnerar namnet på tråden.public void setName(String name):ändrar namnet på tråden.offentlig tråd aktuell tråd():returnerar referensen för den aktuella tråden.public int getId():returnerar id för tråden.public Thread.State getState():returnerar tillståndet för tråden.public boolean isAlive():testar om tråden lever.public void yield():gör att det körande trådobjektet tillfälligt pausar och låter andra trådar köras.public void suspend():används för att suspendera tråden (avskriven).offentligt void CV():används för att återuppta den upphängda tråden (avskriven).public void stop():används för att stoppa tråden (avskriven).public boolean isDaemon():testar om tråden är en demon-tråd.public void setDaemon(boolesk b):markerar tråden som demon eller användartråd.public void interrupt():avbryter tråden.public boolean isInterrupted():testar om tråden har blivit avbruten.public static boolean interrupted():testar om den aktuella tråden har avbrutits.

Körbart gränssnitt:

Det körbara gränssnittet bör implementeras av alla klasser vars instanser är avsedda att exekveras av en tråd. Körbart gränssnitt har bara en metod som heter run().

java objekt
    public void run():används för att utföra åtgärder för en tråd.

Starta en tråd:

De start() metod of Thread-klassen används för att starta en nyskapad tråd. Den utför följande uppgifter:

  • En ny tråd startar (med ny callstack).
  • Tråden flyttas från New state till Runnable state.
  • När tråden får en chans att köra körs dess target run()-metod.

1) Java-trådsexempel genom att utöka trådklassen

Filnamn: 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-trådsexempel genom att implementera ett körbart gränssnitt

Filnamn: 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:

2 till 1 multiplexor
 thread is running... 

Om du inte utökar klassen Thread kommer ditt klassobjekt inte att behandlas som ett trådobjekt. Så du måste uttryckligen skapa klassobjektet Thread. Vi skickar objektet för din klass som implementerar Runnable så att din class run()-metod kan köras.

3) Använda trådklassen: tråd(strängnamn)

Vi kan direkt använda klassen Thread för att skapa nya trådar med hjälp av konstruktörerna definierade ovan.

Filnamn: 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) Använda trådklassen: tråd (körbar r, strängnamn)

Observera följande program.

Filnamn: 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:

dolda appar på den här enheten
 My new thread Now the thread is running ...