| | |
| |
|
Јава нишки (Java threads) |
Наследување на класата Thread
Процедурата за креирање на нишка со наследување на класата Thread изгледа вака:
1. Класата ја наследува класата Thread и ја override-ува методата run() од класата Thread ѕа да го дефинира кодот кој треба да биде изврешен од нишката.
2. Оваа подкласа може да го повика конструкторот на суперкласата за да ја иницијализира нишката користејќи го повикот до супер-контрукторот super();
3. Се повикува наследената метода start() за да може нишката да почне со извршување на програмската логика.
Еве и примерче кое го илустрира наследувањето на класата. За да ја стартувате нишката потребно е да ја повикате методата start() на инстанцираниот објект.
class XThread extends Thread {
XThread() {
}
XThread(String imeNaNiskata) {
super(imeNaNiskata); // Inicijalizacija na nishkata
System.out.println(this);
start();
}
public void run() {
//Prikazi informacii za momentalnata nishka
System.out.println(Thread.currentThread().getName());
}
}
public class PrimerZaNishka {
public static void main(String[] args) {
Thread thread1 = new Thread(new XThread(), "nishka1");
Thread thread2 = new Thread(new XThread(), "nishka2");
// Slednite dve nishki ke imaat voobicaeni iminja
Thread thread3 = new XThread();
Thread thread4 = new XThread();
Thread thread5 = new XThread("nishka5");
//Startuvanje na nishkite
thread1.start();
thread2.start();
thread3.start();
thread4.start();
try {
//Metodata sleep() e povikana za da ovozmozhi pauza od 1 sekunda
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
}
//Prikazi informacii za glanata nishka
System.out.println(Thread.currentThread());
}
}
Излезот би требало да наликува нешто налик на ова:
Thread[nishka5,5,main]
nishka1
nishka5
nishka2
Thread-3
Thread-2
Thread[main,5,main]private
Кога се креираат нишки има две главни причини зошто некогаш е позгодно да се имплементира интерфејсот Runnable одколку да се наследи класата Thread:
- Наследувањето на класата Thread значи дека подкласата нема да може да наследи некоја друга класа, а имплементацијата на интерфејсот ќе ја овозможи баш таа опција
- Класата можеби треба само да биде Runnable па наследувањето на класата Thread би било беспотребно.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|