没问题,正常情况!
isAlive()不是静态方法,通过类名访问它,无效。
getPrime线程一直活着。

解决方案 »

  1.   

    你的线程里就是死循环啊,while(true){
    }
    所以一直输出
      

  2.   

    你搞的好象是单个线程,而且while(getPrime.isAlive())
    多加两个线程,并加入线程终止条件,可以使用kill()
      

  3.   

    你用while(true),又没有用break,只是用了break loop!只是又跳到loop:,从新进行一次for (int i=0;i<number;i++)……,而不是停止!当然是死循环!!!
    break [something]就像C中的goto语句,最好不要用这个功能,实在不得已的时候再用吧!这是个不好的习惯!
    什么时候想停止,就把break放在那里!!!
      

  4.   

    我现在奇怪的是程序没有运行到线程!只运行下面:
    while(primeThread.isAlive())
    {
    System.out.println("Counting the prime number... \n");
    try
    {
    Thread.sleep(5);
    }
    这些语句,真不知道那错,像 weblive(一窍不通 - 大傻) 说的那样,应该是进入
    死循环呀,但是没有!这是为何?
      

  5.   

    break loop是跳出for循环的,这个没错,尽管没必要。问题是没有地方跳出while(true)这个循环。你的程序已经运行到线程,只要primeThread还在运行就会不断打出Counting the prime number...