Main thread has priority 5, newly created thread has the priority same as main thread like 5. But before start the thread, I changed the priority of the newly created thread to 10. Highest priority thread need to execute first, but it not occuring like that, main thread is executing first. Please tell why and what is the wrong in my code, I pasted the total code and output. please help me.
public class MyThread1 extends Thread{
@Override
public void run(){
System.out.println("Child Thread............");
for(int i=1;i<10;i++){
System.out.println("Child Thread");
}
}
}
public class ThreadMain {
public static void main(String ar[]){
int mainPriority=Thread.currentThread().getPriority();
System.out.println("mainPriority = " + mainPriority);
MyThread1 t1=new MyThread1();
t1.setPriority(10);
t1.start();
int childPriority=t1.getPriority();
System.out.println("childPriority = " + childPriority);
for(int i=1;i<10;i++){
System.out.println("Main Thread");
}
}
}
And the output is as follows why?
mainPriority = 5
childPriority = 10
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Main Thread
Child Thread............
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Child Thread
Can anybody help, thank you