| | |
| |
|
Јава нишки (Java threads) |
Имплементација на интерфејсот Runnable
Изглед на интерфејсот Runnable:
public interface Runnable {
void run();
}
Еден начин за креирање на нишка во Јава е да го имплементираме интерфејсот Runnable и потоа да инстанцираме објект од таа класа. Треба да направиме „override“ на методата run() која е единствна метода која треба да биде имплементирана. Методата run() ја содржи логиката на извршување на нишката.
Процедурално поставено, креирање на нишка базирана на интерфејсот Runnable изгледа вака:
1. Класата го имплементира интерфејсот Runnable, креирање на методата run() која ќе биде извршена од страна на нишката. Објект од оваа класа е Runnable објект.
2. Се креира објект од класата Thread со праќање на Runnable објектот како аргумент во конструкторот на класата Thread. Сега објектот Thread има Runnable објект кој ја има имплементирано методата run().
3. Се повикува методата start() на објектот од класата Thread кој го креиравме во претходниот чекор. Методата start() завршува со извршување штом нишката е покрената.
4. Нишката завршува со извршување во моментот кога методата run() завршила со извршување, дали со нормалон комплетирање на избршување на програмската логика или со исфрлање на exception.
Еве и примерче кои го илустрира инстанцирањето и извршување на нишки користејќи имплементација на Runnable интерфејсот наместо наследување на класата Thread. За да ја стартуваш нишката треба да ја повикаш методата start() на твојот објект.
class RunnableThread implements Runnable {
Thread runner;
public RunnableThread() {
}
public RunnableThread(String threadName) {
runner = new Thread(this, threadName); // (1) Kreiranje na nova nishka
System.out.println(runner.getName());
runner.start(); // (2) Startuvanje na nishkata
}
public void run() {
//Ispecati informaii za ovaa nishka
System.out.println(Thread.currentThread());
}
}
public class RunnableExample {
public static void main(String[] args) {
Thread thread1 = new Thread(new RunnableThread(), "nishka1");
Thread thread2 = new Thread(new RunnableThread(), "nishka2");
RunnableThread thread3 = new RunnableThread("nishka3");
//Startuvanje na nishkite
thread1.start();
thread2.start();
try {
// pauza od edna sekunda
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
}
//Prikazi informacija za glavnata nishka
System.out.println(Thread.currentThread());
}
}
Излезот би требало да наликува нешто налик на ова:
nishka3
Thread[nishka1,5,main]
Thread[nishka2,5,main]
Thread[nishka3,5,main]
Thread[main,5,main]private
Овој пристап за креирање на нишка со имплементирање на интерфејсот Runnable би требало да се користи само во случаи кога класата која се користи за да инстанцира нишка треба да наследи друга класа.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|