Saya mencoba googling, tetapi saya tidak dapat menemukannya. Saya mencari:
jumlah utas dalam proses X
jumlah total utas yang berjalan saat ini
Saya mencoba googling, tetapi saya tidak dapat menemukannya. Saya mencari:
jumlah utas dalam proses X
jumlah total utas yang berjalan saat ini
Jawaban:
Untuk mendapatkan jumlah utas untuk pid yang diberikan:
ps -o nlwp <pid>
Untuk mendapatkan jumlah semua utas yang berjalan di sistem:
ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
ps -o nlwp <pid>
mengembalikan NLWP :), apa artinya itu?
ps h -o nlwp $pid
Saya mendasarkan jawaban ini di sekitar ps axms
. ps
adalah alat yang bagus untuk mendaftar apa yang sedang berjalan.
Jika Anda ingin memfilternya dengan suatu proses, Anda dapat mencoba sesuatu seperti ini:
echo $(( `ps axms | grep firefox | wc -l` - 1))
Kami kurangi 1 karena grep akan ditampilkan dalam daftar itu.
Untuk semua utas secara umum, ini seharusnya berfungsi:
echo $(( `ps axms | wc -l` - 1))
Kami kurangi satu kali ini karena ada baris tajuk.
Untuk mendapatkan jumlah total utas (bagian-bagian kecil dari proses yang berjalan secara bersamaan) dari Anda dapat menggunakan perintah ps -o nlwp <pid>
Ini berfungsi sepanjang waktu. Tetapi jika Anda lebih suka mencoba melihatnya melalui file. Anda mungkin harus melihat file yang dibuat untuk setiap proses sistem. Di sana Anda bisa mendapatkan detail akhir dari proses tersebut. Untuk setiap proses, ada folder yang dibuat di /proc/<pid>
sana Anda dapat melihat semua detail lainnya juga.
Di linux secara khusus, berikut adalah salah satu cara untuk melakukannya per-proses:
#!/bin/sh
while read name val; do
if [ "$name" = Threads: ]; then
printf %s\\n "$val"
return
fi
done < /proc/"$1"/status
Anda kemudian dapat memanggil skrip ini dengan PID sebagai argumen, dan skrip ini akan melaporkan jumlah utas yang dimiliki oleh proses itu.
Untuk mendapatkan jumlah utas untuk seluruh sistem, ini sudah cukup:
#!/bin/sh
count() {
printf %s\\n "$#"
}
count /proc/[0-9]*/task/[0-9]*
Pendekatan ini mungkin tampak sedikit ortodoks karena mereka sangat bergantung pada fitur shell, tetapi sebagai imbalannya keduanya lebih cepat daripada pendekatan yang sesuai ps
dan awk
berbasis pada mesin saya (sementara juga tidak membuat thread tambahan sendiri untuk pipa). Ingatlah bahwa shell yang diluncurkan untuk menjalankan skrip ini akan memiliki utas sendiri (atau lebih, jika Anda menggunakan implementasi yang aneh).