打印线程ID

#include 
#include 

pthread_t ntid;
 
void printids(const char*   s)
{
    pid_t           pid;
    pthread_t       tid;

    pid = getpid();
    tid = pthread_self();
    printf("%s pid %u tid %u (0x%x)\n", s, (unsigned int)pid, (unsigned int)tid, (unsigned int)tid);
}

void*   thr_fn(void*    arg)
{
    printids("new pthread: ");
    return ((void*)0);
}

int main()
{
    int err;
    err = pthread_create(&ntid, NULL, thr_fn, NULL);
    if(err != 0)
    {
        printf("can't create pthread: %s\n", strerror(err));
    }
    printids("main thread:");
    sleep(10);
    exit(0);
}

你可能感兴趣的:(多线程技术)