Hi ha dues maneres de crear un fil:
- Ampliant la classe Thread
- 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:
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
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 ...