有两个问题:
1、请问java程序能同时运行多少个线程,java的运行空间是多大??
2、我写了的启动线程的小程序,每个线程的run()中只有Thread.currentThread.getName();语句。
    按理说线程结束后,为什么打印出的内容是不断增加的呢??(也就是已结束的线程还存在??)
    请问线程何时算这正结束??如何判断呢??谢谢!!请各位多指教,谢谢!!!!
   

解决方案 »

  1.   

    1、貌似没有限制吧,关键看资源
    2、run()运行结束线程就结束,你遇到的问题应该是有循环或其他情况,上代码
      

  2.   

    启动线程的程序(暂称为主线程)是没有结束的。
    如果主线程没有结束,那其他的子线程执行完run()方法也不能结束吗??那样的话线程数多的话(如超出java限制)怎么办呢?请各位多指教,再次感谢!!!测试程序由两个类组成,MulThreadTest1 负责启动MulThreadTest2线程。
    测试代码如下:
    public class MulThreadTest1 { public static void main(String[] args) { while (true) { new Thread(new MulThreadTest2()).start(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace();
    }
    }
    }}public class MulThreadTest2  implements Runnable { public void run(){

    System.out.println("打印当前进程: "+Thread.currentThread().getName());
    }
    }
      

  3.   

    已经结束了,只是你不停的while产生新的而已
      

  4.   

    你这线程写的有点幼稚,你可以让他设置个标志位,然后循环多少次后就break;
      

  5.   

    这只是一个测试程序。我不明白的是,既然那些已经结束了,为什么打印出来的线程name还是不断增长呢??
    譬如说线程1结束了,那新new的线程应该由1啊,但事实并非如此,而是不断的增长??请问这是为什么??
    谢谢!!!!打印当前进程: Thread-0
    打印当前进程: Thread-1
    打印当前进程: Thread-2
    打印当前进程: Thread-3
    打印当前进程: Thread-4
    打印当前进程: Thread-5
    打印当前进程: Thread-6
    打印当前进程: Thread-7
    打印当前进程: Thread-8
    打印当前进程: Thread-9
    …………
    …………
      

  6.   

    线程名字不一样不正好代表了前面的线程已经结束,现在打印的是一个全新的线程。
    如果要知道线程结束没结束,用isAlive()方法检查就知道了。
      

  7.   

    1、请问java程序能同时运行多少个线程,java的运行空间是多大?? 
    这个看每个人的电脑配置问题吧 理论上应该接近无限 (也可能是JAVA中能表示的最大值)2、我写了的启动线程的小程序,每个线程的run()中只有Thread.currentThread.getName();语句。 
        按理说线程结束后,为什么打印出的内容是不断增加的呢??(也就是已结束的线程还存在??) 
        请问线程何时算这正结束??如何判断呢??谢谢!! 
    每个线程Thread.currentThread.getName();语句。运行完后 暂时搁置起来 等待垃圾回收器回收
    如果要知道线程结束没结束,用isAlive()方法检查就知道了。以上个人见解 欢迎拍砖~ +_+
      

  8.   

    这个是jvm给你创建的线程起的名字,用来区别不同的线程,你的想的逻辑出了问题,并不是说再出现个名字
    Thread-1才能代表以前的线程1结束
      

  9.   

    主线程(main)结束后,用户线程依然可以继续执行,
    而守护线程就会停止执行
    public final void setDaemon(boolean on)