logo

Fils de Java | Com crear un fil a Java

Hi ha dues maneres de crear un fil:

  1. Ampliant la classe Thread
  2. Mitjançant la implementació de la interfície Runnable.

Classe de fil:

La classe Thread proporciona constructors i mètodes per crear i realitzar operacions en un fil. La classe Thread amplia la classe Object i implementa la interfície Runnable.

Constructors d'ús habitual de la classe Thread:

  • Fil ()
  • Fil (nom de la cadena)
  • Fil (executable r)
  • Fil (r executable, nom de la cadena)

Mètodes utilitzats habitualment de la classe Thread:

    public void run():s'utilitza per dur a terme una acció per a un fil.public void start():inicia l'execució del fil. JVM crida al mètode run() del fil.son públic buit (milisegons llargs):Fa que el fil que s'executa actualment s'atura (atura l'execució temporalment) durant el nombre especificat de mil·lisegons.Public Vod join():espera que mori un fil.Public Vod join (milisegons llargs):espera que un fil mor durant els mil·lisegons especificats.public int getPriority():retorna la prioritat del fil.public int setPriority (prioritat int):canvia la prioritat del fil.cadena pública getName():retorna el nom del fil.public void setName (nom de la cadena):canvia el nom del fil.Public Thread currentThread():retorna la referència del fil que s'està executant.public int getId():retorna l'identificador del fil.public Thread.State getState():retorna l'estat del fil.booleà públic isAlive():prova si el fil està viu.rendiment del nul públic ():fa que l'objecte de fil que s'executa actualment s'atura temporalment i permet que s'executin altres fils.public void suspend():s'utilitza per suspendre el fil (descarregat).currículum nul públic ():s'utilitza per reprendre el fil suspès (descarregat).parada de buit públic ():s'utilitza per aturar el fil (descarregat).booleà públic isDaemon():prova si el fil és un fil de dimoni.public void setDaemon (booleà b):marca el fil com a dimoni o fil d'usuari.public void interrupció ():interromp el fil.booleà públic està interromput():prova si el fil s'ha interromput.booleà estàtic públic interromput ():prova si el fil actual s'ha interromput.

Interfície executable:

La interfície Runnable ha de ser implementada per qualsevol classe les instàncies de la qual estiguin destinades a ser executades per un fil. La interfície executable només té un mètode anomenat run().

objecte en programació java
    public void run():s'utilitza per dur a terme una acció per a un fil.

Iniciant un fil:

El mètode start(). de la classe Thread s'utilitza per iniciar un fil de nova creació. Realitza les següents tasques:

  • S'inicia un fil nou (amb una nova pila de trucades).
  • El fil passa de l'estat Nou a l'estat Executable.
  • Quan el fil tingui l'oportunitat d'executar-se, s'executarà el seu mètode run() target.

1) Exemple de fil de Java ampliant la classe de fil

Nom de l'arxiu: 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(); } } 

Sortida:

convertint la cadena a int java
 thread is running... 

2) Exemple de fil de Java mitjançant la implementació de la interfície Runnable

Nom de l'arxiu: 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(); } } 

Sortida:

 thread is running... 

Si no esteu estenent la classe Thread, el vostre objecte de classe no es tractaria com un objecte thread. Per tant, heu de crear explícitament l'objecte de classe Thread. Estem passant l'objecte de la vostra classe que implementa Runnable perquè la vostra classe run() s'executi.

3) Ús de la classe Thread: Thread (nom de la cadena)

Podem utilitzar directament la classe Thread per generar nous fils utilitzant els constructors definits anteriorment.

Nom de l'arxiu: MyThread1.java

char a cadena 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); } } 

Sortida:

 My first thread 

4) Ús de la classe Thread: Thread (Runnable r, String name)

Observa el programa següent.

Nom de l'arxiu: 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); } } 

Sortida:

 My new thread Now the thread is running ...