Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Јава нишки (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 би требало да се користи само во случаи кога класата која се користи за да инстанцира нишка треба да наследи друга класа.
страна број: 1 2 3 << претходна страна : : следна страна >> 
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: Анонимус (30.11.2009 22:07:45)
Исто така за креирање на нишка може да се имплементира интерфејсот, Runnable. Најчесто во пракса се користи повеќе интерфејсот отколку самата класа за креирање на нишка, од проста причина што една класа може да наследи само една родителска класа ама може да имплементира повеќе интерфејси
напишал: Анонимус (26.11.2012 16:07:19)
Ако може помош околу оваа задача.

Една нитка случајно генерира (random) броеви на секои 0,5 секунди. Доколку најде 2 последователни броеви кои се прости, тогаш работата се предава на друга нитка. Новата нитка на секоја секунда случајно генерира по два броеви и проверува дали разликата меѓу првиот прост број од претходната нитка и првиот генериран број е прост број. Доколку разликата е прост број истата ја печати заедно со генерираните броеви. Потоа нитката застанува со работа. Истото се случува доколку вториот прост број и вториот генериран број го задоволуваат условот. Доколку првата нитка во 50 обиди не најде 2 последователни прости броеви се печати порака “Ne se najdeni prosti broevi”;
пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2017 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.