First of all the Thread.sleep(1000) command forces the main process which is the one generated from the execution of PrimeThreads to wait (sleep) for 1 second (1000 milliseconds). If another thread tries to wake him up before the sleep time is over it will throw an InterruptedException.
However in your case, there does not seem to be another thread (at least visible in the code you posted) so this exception won't be thrown.
That is the main purpose of the sleep in general.
In your case I cannot see any usage for it. In fact we use the sleep method whenever we need the main thread to wait for another operation to be completed or to give a small wait time between two sequential operations. In the code you posted, the sleep is last command so I think it is useless.
I got other comments for your code:
the while loop "while(!complete) only runs once because you are setting the complete to true in the first line of the while block. So it is a one iteration loop. An if statement would have been enought
Code:
if(!complete) {
complete = true;
etc.. etc.. etc..
}
Hope this was clear.