❶ linux能同時啟動多少個線程
默認情況下:
主線程+輔助線程 +<253個自己的線程<=255
含主線程和一個輔助線程,最多255個,即一個用戶只能生成253個線程。
Linux最大線程數限制及當前線程數查詢:
1、總結系統限制有:
/proc/sys/kernel/pid_max #查系統支持的最大線程數,一般會很大,相當於理論值
/proc/sys/kernel/thread-max
max_user_process(ulimit -u) #系統限制某用戶下最多可以運行多少進程或線程
/proc/sys/vm/max_map_count
硬體內存大小
2、java虛擬機本身限制:
-Xms #intial java heap size
-Xmx #maximum java heap size
-Xss #the stack size for each thread
3、查詢當前某程序的線程或進程數
pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l 或 pstree -p 3660 | wc -l
4、查詢當前整個系統已用的線程或進程數
pstree -p | wc -l
1、 cat /proc/${pid}/status
2、pstree -p ${pid}
3、top -p ${pid} 再按H 或者直接輸入 top -bH -d 3 -p ${pid}
top -H
手冊中說:-H : Threads toggle
加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。
4、ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。
5、ps -mp <PID>
手冊中說:m Show threads after processes
這樣可以查看一個進程起的線程數。
❷ Linux系統如何查看進程的線程數
Linux系統查看某個進程的線程數可以通過ps命令來進行查詢。以firefox進程為例。
1、查看firefox的進程pid,如下圖所示,firefox的進程pid為3168。
2、查看firefox中的線程數和線程ID,如下圖所示,
其中NLWP
列為線程數
LWP列為線程ID,可見firefox有線程數50。
❸ linux中一個進程的最大線程數量是多少
linux 系統中單個進程的最大線程數有其最大的限制 PTHREAD_THREADS_MAX
這個限制可以在 /usr/include/bits/local_lim.h 中查看關於Linux命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html
對 linuxthreads 這個值一般是 1024,對於 nptl 則沒有硬性的限制,僅僅受限於系統的資源
這個系統的資源主要就是線程的 stack 所佔用的內存,用 ulimit -s 可以查看默認的線程棧大小,一般情況下,這個值是 8M
❹ Linux 如何查看線程數最佳解決方案
1、top -H
手冊中說:-H : Threads toggle
加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。
2、ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。
3、ps -mp <PID>
手冊中說:m Show threads after processes
這樣可以查看一個進程起的線程數。
更多詳盡的解釋還可以man ps,man top。
需要解決更多linux問題,詳情請看 http://www.linuxprobe.com/chapter-00.html
望採納!
❺ Linux 怎麼增大可以創建的最大線程數
檢查ulimit -a 的結果,查看stack size:
stack size (kbytes, -s) 8192
8192KB 就是棧的大小。不能超過這個棧的數目,因此上面2)分配的buf大小超過了棧限制,得到了setmentation fault。
LInux上,最大線程數目是:
number of threads = total virtual memory / (stack size*1024*1024)
在32位系統上,進程空間是4G,其中0-3G是用戶空間(0x0-0xBFFFFFFF), 3G-4G是內核空間。
因此理論上講,用戶空間大小/棧大小=最大線程數。3072M/8M=384,考慮到系統的佔用,主線程等,我的系統上是380. 也許在你的系統上是382.
我們可以減小棧限制或者增大虛擬內存使得線程的數目增加。
檢查虛擬內存: ulimit -v
檢查棧大小: ulimit -s
設置虛擬內存:ulimit -v 新值
設置棧大小: ulimit -s 新值