如题,现在需要用java程序在linux上创建10万个线程,用来启动10个ftp server
在执行过程中程序抛出  unable to create new native thread 的java.lang.outofmemoryerror 
的异常信息,可有高手帮忙解决一下,让这10万个线程正常启动起来。
万王帮忙,谢谢大家了~!!!

解决方案 »

  1.   

    去找IBM吧问他们有没办法帮你解决 你一次启那么多想成干嘛 没人登陆你的FTP你就一直空闲着吧 linux自己内部的FTP就很好用 你用java启线程去多线程下载上传吗?弄个线程池 及时销毁无用线程
      

  2.   

    因为我们需要对客户的产品进行测试,他们要求我们一个个启动FTP server 最终达到10万台同时启动的效果,以供客户产品的测试。
    各位大侠有办法吗,给个方向也行阿~!
      

  3.   

    答:
    1)LINUX下(如:SUSE LINUX)一个线程默认的stack size是8K,而你是10万个线程,则你计算一下,仅仅是stack的空间就要:10万*8K约等于800M!
    因此:(1)扩大JVM的内存空间
           (2)缩小每一个线程的栈的大小(-Xss)
    2)即使1)做到了(内存空间大约满足了),你还有下一个问题:
    在LINUX下(如:SUSE LINUX)下,默认所能创建的最大线程数是:11758
    因此:你必须在你的LINUX下,扩大你的LINUX下的最大线程数。否则你创建不了10万线程的。以上仅供你参考
      

  4.   

    java.lang.outofmemoryerror   ===> 内存溢出。