public class SimpleThread1 extends Thread { private int countDown = 5; private static int threadCount = 0; private int threadNumber = ++threadCount; public SimpleThread1() { System.out.println("Making " + threadNumber); } public void run() { while(true) { System.out.println("Thread " + threadNumber + "(" + countDown + ")"); if(--countDown == 0) return; yield(); }} public static void main(String[] args) { for(int i = 0; i < 5; i++) new SimpleThread1().start(); System.out.println("All Threads Started"); }} Sincronizarea thread-urilor cu sleep() public class SimpleThread extends Thread { private int countDown = 5; private static int threadCount = 0; private int threadNumber = ++threadCount; public SimpleThread() { System.out.println("Making " + threadNumber); } public void run() { while(true) { System.out.println("Thread " + threadNumber + "(" + countDown + ")"); if(--countDown == 0) return; try{ sleep(100);} Catch (InterruptedException e) { Throw new RuntimeException(e);} }} public static void main(String[] args) { for(int i = 0; i < 5; i++) new SimpleThread().start(); System.out.println("All Threads Started"); }} Metodele clasei Thread Constructorii Crearea unui nou obiect Thread public Thread(); Crearea unui nou obiect Thread cu indicarea obiectului pentru care va fi activată metoda run(). public Thread(Runnable target); Analogic constructorului precedent, dar se indică ți numele obiectului Thread public Thread(Runnable target, String name); Crearea unui nou obiect Thread și se indică numele lui. public Thread(String name); Crearea unui nou obiect Thread, se indică numele grupului căruia îi aparâine și obiectul pentru cae va fi activată metoda run(). public Thread(ThreadGroup group, Runnable target); Analogic constructorului precedent, dar se indică ți numele obiectului Thread public Thread(ThreadGroup group, Runnable target, String name); Crearea unui nou obiect Thread cu indicarea numelui grupului căruia îi aparâine și numele lui. public Thread(ThreadGroup group, String name); Metodele activeCount apreciază numărul de thread-uri active din grupul căruia îi aparâine public static int activeCount();
currentThread apreciază thread-ul curent activ
public static Thread currentThread();
destroy finalifarea forțată a thread-ului
public void destroy();
enumerate apreciază toate thread-urile din grupa dată.
public static int enumerate(Thread tarray[]);
getName apreciază numele thread-ului.
public final String getName();
getPriority apreciază prioritatea curentă a thread-ului
public final int getPriority(); continuare
getThreadGroup apreciază grupul căruia îi aparține thread-ul
public final ThreadGroup getThreadGroup();
interrupt întrerupe realizarea thread-ului
public void interrupt();
Interrupted aptreciază dacă thread-ul este întrerupt
public static boolean interrupted();
isAlive apreciază dacă thread-ul se realizează sau nu
public final boolean isAlive();
isDaemon apreciază este thread-ul daemon
public final boolean isDaemon();
resume restartarea thread-ului temporar oprit
public final void resume(); continuare join așteaptă realizarea complectă a thread-ului sau așteaptă realizarea thread-ului pe parcursul timpului indicat în milisecunde și nanosecunde public final void join(); public final void join(long millis); public final void join(long millis, int nanos);
run metoda este activată pentru a realiza thread-ul
public void run();
setDaemon indică că thread-ul creat va fi daemon
public final void setDaemon(boolean on);
setName atribue nume thread-ului
public final void setName(String name);
yield oprește temporar thread-ul activ a transmite comanda altui
thread public static void yield(); continuarе setPriority instalarea priorității public final void setPriority(int newPriority);
sleep ”adormirea” thread-ului pe timpul indicat în milisecunde și
nanosecunde public static void sleep(long millis); public static void sleep(long millis, int nanos);