class Counter extends Thread { private int currentValue; public Counter(String threadName) { super(threadName); // (1) Initialize thread. currentValue = 0; System.out.println(this); start(); // (2) Start this thread. } public int getValue() { return currentValue; } public void run() { // (3) Override from superclass. try { while (currentValue < 5) { System.out.println(getName() + ": " + (currentValue++)); Thread.sleep(250); // (4) Current thread sleeps. } } catch (InterruptedException e) { System.out.println(getName() + " interrupted."); } System.out.println("Exit from thread: " + getName()); } } public class Client { public static void main(String[] args) { System.out.println("Method main() runs in thread " + Thread.currentThread().getName()); // (5) Current thread Counter counterA = new Counter("Counter A"); // (6) Create a thread. Counter counterB = new Counter("Counter B"); // (7) Create a thread. System.out.println("Exit from main() method."); } }
Possible output from the program:
Method main() runs in thread main Thread[Counter A,5,main] Thread[Counter B,5,main] Exit from main() method. Counter A: 0 Counter B: 0 Counter A: 1 Counter B: 1 Counter A: 2 Counter B: 2 Counter A: 3 Counter B: 3 Counter A: 4 Counter B: 4 Exit from thread: Counter A Exit from thread: Counter B
No comments:
Post a Comment