The thread is interrupted at 5 sec. In isPrime
function, if the if(num % 2 == 0)
is commented, the code prints to 85427
whereas with the if it prints only till 83761
. Kindly help in understanding this absurd behavior in multithreading.
public void run(){
long number = 1l;
while(true){
if(isPrime(number)){
System.out.println("Number is prime number : " + number);
}
if(isInterrupted()){
System.out.println("The Prime generator has been interrupted");
return;
}
number++;
}
}
public boolean isPrime(long num){
if(num <= 2){
return true;
}
else{
if(num % 2 == 0){
return false;
}
else{
for(long i = 3; i < num ; i++ ){
if((num % i) == 0){
return false;
}
}
}
}
return true;
}