2015-01-28 4 views
3

В system.log я могу видеть мой процесс:OSX - получить PTHREAD идентификатора

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

Я использую несколько потоков, поэтому я попытался напечатать идентификатор потока в работоспособном методе, который использует нить, как это :

void* runnable1(void* ptr) 
{ 
    pthread_t tid = pthread_self(); 
    printf("HELLO from thread runnable1 with id : %ld\n", tid); 

    ... 
} 

однако я получаю идентификатор, как это:

HELLO from thread runnable1 with id : 4488212480 

очень отличается от того, от system.log.

Вопрос в том, как получить идентификатор потока так, как он появляется в system.log?

ответ

4

попробуйте:

uint64_t tid; 
pthread_threadid_np(NULL, &tid); 
printf("HELLO from thread runnable1 with id : %ld\n", tid); 
Смежные вопросы