概述Java的线程是否像Linux上的进程一样工作?
我已经开始了一个docker服务器和一个ehcache实例,很快,当我启动另一个jave进程时,我遇到了linux上的线程限制。
错误消息unable to create new native thread (PS我的linux *** 作系统是CentOS 6.2)。
然后我用ps -xH知道两个java进程(jetty和ehcache)产生了近800个线程, ps -xH的总数是1023, ulimit -u显示的是1024。
所以,我的问题是,为什么java spawn线程,但我遇到过程数的限制?
Docker:Nginx和PHP5-fpm docker不在说话
在构buildDocker镜像时无法find软件包
NoClassDefFoundError启动docker服务器
Docker:无法运行存储在已安装卷中的shell脚本
如何将Nginx用作Bluemix上的dynamic负载平衡代理服务器?
PS我有足够的内存
Docker在安装后第一次运行失败。 错误发布http:// …权限被拒绝。 您是否尝试连接到启用TLS的守护程序而不使用TLS?
Nginx后面的Traefik Docker Swarm模式真实IP
docker没有被在linux上的服务脚本停止
在Alpine Docker容器上安装OpenSSH
无法访问本地windows机器上的Nginx容器
因为对于linux线程来说,一个进程基本上是一样的。 它们之间的区别在于线程共享内存,文件描述符等等,而进程却不能。
看看这个更深入的洞察力。 所以线程和进程都会计入1023个进程的限制。
你应该尝试创建更少的线程,这似乎对我来说是一个巨大的好处。
这是迄今为止,线程数量过多,至少对Jetty来说。 除非你已经强调你的服务器每秒有数百个请求,否则这不应该发生。 仔细检查线程没有被无限期地阻塞。 在任何情况下,配置排队或拒绝请求之前允许的最大线程数。
总结
以上是内存溢出为你收集整理的Java的线程是否像Linux上的进程一样工作?全部内容,希望文章能够帮你解决Java的线程是否像Linux上的进程一样工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容