gpt4 book ai didi

c - pthread_self() 和 gettid() 返回值之间的差异

转载 作者:可可西里 更新时间:2023-11-01 11:49:38 32 4
gpt4 key购买 nike

根据我的理解,gettid()返回的TID(thread id)在一个进程中(或者在一个多进程的程序中,而每个进程可能有多个线程),即在一个进程内,不同的线程有不同的线程id。

pthread_self()返回的TID在进程间是唯一的,即在同一台机器上,不同的线程有不同的TID同时在同一台机器上。

我的理解对不对?

另外,线程如何获取其派生线程的TID(对应于gettid())?谢谢!

最佳答案

为了在 Linux 上为这个问题添加一些实现上下文:

  1. gettid() 返回一个对应于线程在内核进程调度程序中的条目的值(与 getpid() 被认为的非常相似)。这是可以设置调度优先级和相关性的东西。

  2. pthread_self() 返回指向进程内存映射中调用线程的 TLS(线程本地存储)槽附近的指针。显然,根据 TLS 的定义,这个值在给定进程中是唯一的(并且可以映射到内核 TID 并返回),但它不可能在系统范围内是唯一的,因为每个进程都有相同的虚拟地址范围。

关于c - pthread_self() 和 gettid() 返回值之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610332/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com