Există două moduri de a crea un fir:
- Prin extinderea clasei Thread
- Prin implementarea interfeței Runnable.
Clasa de fir:
Clasa Thread oferă constructori și metode pentru a crea și efectua operațiuni pe un fir. Clasa Thread extinde clasa Object și implementează interfața Runnable.
Constructori folosiți în mod obișnuit din clasa Thread:
- Fir()
- Thread (nume șir)
- Thread (Rulsabil r)
- Thread (Runnable r, String name)
Metode utilizate în mod obișnuit din clasa Thread:
Interfață rulabilă:
Interfața Runnable ar trebui să fie implementată de orice clasă ale cărei instanțe sunt destinate să fie executate de un fir. Interfața rulabilă are o singură metodă numită run().
program de încapsulare
Pornirea unui thread:
The metoda start(). din clasa Thread este folosită pentru a începe un fir nou creat. Îndeplinește următoarele sarcini:
- Începe un nou thread (cu o nouă stivă de apeluri).
- Firul se mută de la starea Nouă la starea de rulare.
- Când firul de execuție are șansa de a se executa, se va rula metoda run() țintă.
1) Exemplu Java Thread prin extinderea clasei Thread
Nume de fișier: 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(); } }
Ieșire:
thread is running...
2) Exemplu de fir Java prin implementarea interfeței Runnable
Nume de fișier: 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(); } }
Ieșire:
thread is running...
Dacă nu extindeți clasa Thread, obiectul dvs. de clasă nu va fi tratat ca obiect thread. Deci, trebuie să creați în mod explicit obiectul clasei Thread. Trecem obiectul clasei dvs. care implementează Runnable, astfel încât metoda run() a clasei dvs. să se poată executa.
tabel complet de adevăr al sumătorului
3) Utilizarea clasei Thread: Thread (Nume șir)
Putem folosi direct clasa Thread pentru a genera fire noi folosind constructorii definiți mai sus.
Nume de fișier: 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); } }
Ieșire:
obiect al java
My first thread
4) Utilizarea clasei Thread: Thread (Runnable r, String name)
Respectați următorul program.
Nume de fișier: 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); } }
Ieșire:
My new thread Now the thread is running ...