Скажем, я создаю pthread как pthread_t lift_3;
и pthread_create(&lift_1, NULL, lift, share);
. Когда он входит в lift()
, как я могу получить функцию печати фактического имени потока? Или установить имя для потока?
Я пытался использовать pthread_self()
для получения идентификатора, но вместо этого он дает случайные числа
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* lift(void* ptr)
{
printf("thread name = %c\n", pthread_self());
pthread_exit(NULL);
return NULL;
}
int main()
{
pthread_t lift_1; // declare thread
pthread_create(&lift_1, NULL, lift, NULL);
pthread_join(lift_1, NULL);
return 0;
}
Ожидаемый результат должен быть thread name = lift_1