Modern ps can show thread information.
The SPID column is the thread id. As far as I can tell, LWP and SPID are the same thing; I am not sure what the value of NLWP is; it appears to be just the count of threads. Use "ps -Lf" to see that column.
-L show threads, possibly with LWP and NLWP columns -T show threads, possibly with SPID column -m show threads after processes H show threads as if they were processes m show threads after processes
The ps man and info pages don't tell you much about threads, probably because there's been plenty of confusion and disagreement about how the kernel should expose thread info, how /proc should pick it up, etc. This old thread shows some of that. Also, Uncertainty about implementation details probably didn't help either.
There are some better man pages out there. Here's the threads of mysqld on a Linux system:
$ ps -p 677 -T PID SPID TTY TIME CMD 677 677 ? 00:00:00 mysqld 677 678 ? 00:00:00 mysqld 677 679 ? 00:00:00 mysqld 677 680 ? 00:00:00 mysqld 677 681 ? 00:00:00 mysqld 677 682 ? 00:00:00 mysqld 677 683 ? 00:00:00 mysqld 677 684 ? 00:00:00 mysqld 677 685 ? 00:00:00 mysqld 677 686 ? 00:00:00 mysqld
Different Unixes have widely different implementations of how thread info is shown and what is displayed. Be sure to check the man pages carefully.
Got something to add? Send me email.
More Articles by Tony Lawrence © 2011-03-14 Tony Lawrence