Java的线程像Linux上的进程一样工作吗?



我已经启动了一个码头服务器和一个ehcache实例,很快当我启动另一个jave进程时,我遇到了linux上的线程限制。

错误消息unable to create new native thread(附言我的Linux操作系统是CentOS 6.2)。

然后我用ps -xH知道两个 java 进程(jetty 和 ehcache)生成了近 800 个线程,ps -xH总数为 1023,ulimit -u显示 1024。

所以,我的问题是,为什么 java 会生成线程,但我遇到了进程数的限制?

附言我有足够的内存

因为对于 Linux 线程来说,进程基本上是一回事。它们之间的区别在于线程共享内存、文件描述符等内容,而进程则不共享。

查看此内容以获取更深入的见解。因此,线程和进程都计入 1023 个进程的限制。

您可能应该尝试创建更少的线程,这对我来说似乎是一个巨大的问题。

到目前为止,这是过多的线程,至少对于Jetty来说是这样。除非您以每秒数百个请求向服务器施加压力,否则这不应该发生。 仔细检查线程是否没有无限期阻塞。在任何情况下,请配置在排队或拒绝请求之前允许的最大线程数。

相关内容

  • 没有找到相关文章

最新更新