簡體   English   中英

Java的線程是否像linux上的進程一樣工作?

[英]Do Java's threads work like process on linux?

我已經啟動了一個jetty服務器和一個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產生線程但我遇到了進程號的限制?

PS我有足夠的記憶力

因為對於Linux Threads來說,進程基本上是一回事。 它們之間的區別在於線程共享內存,文件描述符等內容,而進程則沒有。

檢查一下 ,以獲得更深入的洞察力。 因此,線程和進程都會計入1023個proccesses的限制。

你可能應該嘗試創建更少的線程,這對我來說似乎是一個巨大的問題。

到目前為止,這是一個過多的線程,至少對於Jetty而言。 除非您每秒向服務器強調數百個請求,否則不應該發生這種情況。 仔細檢查線程是否無限期阻塞。 在任何情況下,配置在排隊或拒絕請求之前允許的最大線程數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM