在system.log中,我可以看到我的过程:

thread 515376 caught burning CPU! It used more than 50% CPU

我使用多个线程,所以我尝试在线程使用的 runnable 方法中打印线程 ID,如下所示:
void* runnable1(void* ptr)
{
    pthread_t tid = pthread_self();
    printf("HELLO from thread runnable1 with id : %ld\n", tid);

    ...
}

但是我得到一个这样的id:
HELLO from thread runnable1 with id : 4488212480

与 system.log 中的非常不同。

问题是,我如何按照它在 system.log 中的显示方式获取线程 ID?

最佳答案

尝试:

uint64_t tid;
pthread_threadid_np(NULL, &tid);
printf("HELLO from thread runnable1 with id : %ld\n", tid);

关于macos - 如何获取当前的 pthread ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28188258/

10-13 01:17