小编Cod*_*b24的帖子

如何知道哪个线程正在执行一个函数?

所以我有一个在 c 中使用 pthreads 的电梯程序的缩小版本。每个线程都是一个单独的调用函数request()。我不知道如何知道哪个电梯(1、2 或 3)是线程正在使用函数请求。在请求函数中,我需要打印当时哪个线程使用了它。对不起,如果我的解释不完全有意义。

void* request(void* abc)
{ 
    int ii;
    for(ii = 0; ii < 8; ii++)
    {
        sleep(1);
        printf("REQUEST FROM LIFT COMPLETED\n");
    }
}
int main()
{
    pthread_t lift1;
    pthread_t lift2;
    pthread_t lift3;

    pthread_create(&lift1, NULL, request, NULL);
    pthread_create(&lift2, NULL, request, NULL);
    pthread_create(&lift3, NULL, request, NULL);

    pthread_join(lift1, NULL);
    pthread_join(lift1, NULL);
    pthread_join(lift1, NULL);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pthreads

0
推荐指数
1
解决办法
83
查看次数

标签 统计

c ×1

pthreads ×1