State of Thread before start of run is not New, its runnable, Isn't it wrong : <p>I am new to threads in Java from the basic learning I understand that when a thread is created, it is in the new state. The thread has not yet started to run when the thread is in this state </p>

<pre><code>public class MainClassForThread {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Thread t1 = new ExtendingThreadClass();
        Thread t2 = new ExtendingThreadClass();
        Thread t3 = new ExtendingThreadClass();

        System.out.println("Before start of thread the state of thread is " + t1.currentThread().getState());
        t1.start();
        t2.start();
        t3.start();
    }

}

package Threads;

public class ExtendingThreadClass extends Thread {

    public void run() {

        System.out.println("Thread running : " + Thread.currentThread().getId());
        for (int i = 0; i &lt; 100; i++) {
            System.out.println("Thread " + Thread.currentThread().getName() + " is running for value of i " + i);
            System.out.println("State " + Thread.currentThread().getState());
        }
    }

}
</code></pre>

<p>I am expecting the output of the first line of code should be NEW as the thread t1 is not started yet, but Output is as below</p>

<pre><code>Before start of thread the state of thread is RUNNABLE
Thread running : 10
Thread running : 12
Thread Thread-2 is running for value of i 0
Thread running : 11
Thread Thread-0 is running for value of i 0
State RUNNABLE
Thread Thread-0 is running for value of i 1
State RUNNABLE
Thread Thread-0 is running for value of i 2
</code></pre>
