If I write t.join(),t is a thread, then it means that currently executing thread stops executing until the thread it joins with,in this case 't', completes.
I want to know when t.join() is called, will the currently executing thread moves back to any blocking/waiting state or in runnable state? Also, is currently executing thread will sure to run once thread 't' completes its execution?
As you said join method blocks the current thread until the 't' thread finishes.
when the current thread call the t.join(), then it goes to the blocked state and it will come back to the runnable state when the 't' thread dies. so, it is based on the OS for the current thread is to be in running state.