Linux教程

C++统计linux系统下进程/线程的CPU与内存使用率

本文主要是介绍C++统计linux系统下进程/线程的CPU与内存使用率,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.gettid 和 pthread_self 的区别

pthread_self()是POSIX的实现,它的返回值是pthread_t,pthread_t在linux中实际是无符号长整型,即unsigned long。
gettid是系统调用,它的返回值是pid_t,在linux上是一个无符号整型。
pthread_self是为了区分同一进程种不同的线程, 是由thread的实现来决定的,而gettid获取的线程id和pid是有关系的,因为在linux中线程其实也是一个进程(clone),所以它的线程ID也是pid_t类型。在一个进程中,主线程的线程id和进程id是一样的,该进程中其他的线程id则在linux系统内是唯一的,因为linux中线程就是进程,而进程号是唯一的。gettid是不可移植的。

pthread_self返回的是同一个进程中各个线程之间的标识号,对于这个进程内是唯一的,而不同进程中,每个线程返回的pthread_self可能返回的是一样的。而gettid是用来系统内各个线程间的标识符,由于linux采用轻量级进程实现的,它其实返回的应该是pid号。

这篇关于C++统计linux系统下进程/线程的CPU与内存使用率的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!