Voit luoda säikeen kahdella tavalla:
- Laajentamalla Thread-luokkaa
- Toteuttamalla Runnable käyttöliittymä.
Viestiluokka:
Thread-luokka tarjoaa rakentajia ja menetelmiä säikeen toimintojen luomiseen ja suorittamiseen. Thread-luokka laajentaa Object-luokkaa ja toteuttaa ajettavan käyttöliittymän.
Yleisesti käytetyt Constructors of Thread -luokan:
- Lanka()
- Lanka (merkkijonon nimi)
- Säie (ajettava r)
- Säie (ajettava r, merkkijonon nimi)
Yleisesti käytetyt Thread-luokan menetelmät:
Suoritettava käyttöliittymä:
Runnable-rajapinta tulee toteuttaa missä tahansa luokassa, jonka ilmentymät on tarkoitettu suoritettavaksi säikeellä. Ajettavassa käyttöliittymässä on vain yksi menetelmä nimeltä run().
char + int javassa
ketjun aloittaminen:
The start()-menetelmä of Thread -luokkaa käytetään äskettäin luodun säikeen aloittamiseen. Se suorittaa seuraavat tehtävät:
- Uusi säiettä alkaa (uudella kutsupinolla).
- Säie siirtyy New-tilasta Runnable-tilaan.
- Kun säie saa mahdollisuuden suorittaa, sen target run() -metodi suoritetaan.
1) Java-säieesimerkki laajentamalla Thread-luokkaa
Tiedoston nimi: 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(); } }
Lähtö:
aakkoset numeroissa
thread is running...
2) Java-säieesimerkki toteuttamalla Runnable interface
Tiedoston nimi: 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(); } }
Lähtö:
thread is running...
Jos et laajenna Thread-luokkaa, luokkasi objektia ei käsitellä säieobjektina. Joten sinun on luotava erikseen Thread-luokan objekti. Välitämme luokkasi objektin, joka toteuttaa Runnable-funktion, jotta luokkasi run()-metodi voi toimia.
3) Säieluokan käyttäminen: Säie (merkkijonon nimi)
Voimme suoraan käyttää Thread-luokkaa uusien säikeiden synnyttämiseen käyttämällä yllä määriteltyjä rakentajia.
Tiedoston nimi: MyThread1.java
java hashmap
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); } }
Lähtö:
My first thread
4) Säieluokan käyttäminen: Thread (Ajettava r, merkkijonon nimi)
Huomioi seuraava ohjelma.
Tiedoston nimi: 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); } }
Lähtö:
My new thread Now the thread is running ...