如题,现在需要用java程序在linux上创建10万个线程,用来启动10个ftp server
在执行过程中程序抛出 unable to create new native thread 的java.lang.outofmemoryerror
的异常信息,可有高手帮忙解决一下,让这10万个线程正常启动起来。
万王帮忙,谢谢大家了~!!!
在执行过程中程序抛出 unable to create new native thread 的java.lang.outofmemoryerror
的异常信息,可有高手帮忙解决一下,让这10万个线程正常启动起来。
万王帮忙,谢谢大家了~!!!
各位大侠有办法吗,给个方向也行阿~!
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万线程的。以上仅供你参考