by BehindJava

How to print Thread numbers in MultiThreading Java

Home » java » How to print Thread numbers in MultiThreading Java

In the below program’s output you can see the results of thread numbers which are not in the order and this states that all the threads are running independently at the same time with slight variance in timing.

public class Counter extends Thread {

	private int threadNumber;

	public Counter(int threadNumber) {
		this.threadNumber = threadNumber;
	}

	@Override
	public void run() {
		for (int i = 0; i <= 5; i++) {
			System.out.println(i + " Running Thread No:" + threadNumber);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public static void main(String args[]) {
		for (int i = 0; i <= 3; i++) {
			Counter c1 = new Counter(i);
			c1.start();
		}
	}

}

Output:

0 Running Thread No:0
0 Running Thread No:1
0 Running Thread No:2
0 Running Thread No:3
1 Running Thread No:1
1 Running Thread No:0
1 Running Thread No:2
1 Running Thread No:3
2 Running Thread No:0
2 Running Thread No:1
2 Running Thread No:3
2 Running Thread No:2
3 Running Thread No:0
3 Running Thread No:3
3 Running Thread No:1
3 Running Thread No:2
4 Running Thread No:0
4 Running Thread No:3
4 Running Thread No:2
4 Running Thread No:1
5 Running Thread No:3
5 Running Thread No:0
5 Running Thread No:1
5 Running Thread No:2

One of the coolest things about multi threading is, If one of the thread blows up or stops due to any exception. Other threads doesn’t get effected by this or terminated by this.

public class Counter extends Thread {

	private int threadNumber;

	public Counter(int threadNumber) {
		this.threadNumber = threadNumber;
	}

	@Override
	public void run() {
		for (int i = 0; i <= 5; i++) {
			System.out.println(i + " Running Thread No:" + threadNumber);
			if (threadNumber == 2) {
				throw new RuntimeException();
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public static void main(String args[]) {
		for (int i = 0; i <= 5; i++) {
			Counter c1 = new Counter(i);
			c1.start();
		}
	}

}

Output:

0 Running Thread No:0
0 Running Thread No:3
0 Running Thread No:4
0 Running Thread No:2
0 Running Thread No:1
0 Running Thread No:5
Exception in thread "Thread-2" java.lang.RuntimeException
	at com.behindjava.httpsexample.Counter.run(Counter.java:17)
1 Running Thread No:0
1 Running Thread No:3
1 Running Thread No:4
1 Running Thread No:1
1 Running Thread No:5
2 Running Thread No:3
2 Running Thread No:0
2 Running Thread No:1
2 Running Thread No:5
2 Running Thread No:4
3 Running Thread No:3
3 Running Thread No:1
3 Running Thread No:0
3 Running Thread No:5
3 Running Thread No:4
4 Running Thread No:3
4 Running Thread No:1
4 Running Thread No:0
4 Running Thread No:5
4 Running Thread No:4
5 Running Thread No:3
5 Running Thread No:1
5 Running Thread No:5
5 Running Thread No:0
5 Running Thread No:4