但是,如果您认为需要线程 ID 的原因是为了知道运行在您控制的另一个线程上的是同一个线程还是不同的线程,那么您可能会发现这种方法的一些实用性
static pthread_t threadA;
// On thread A...
threadA = pthread_self();
// On thread B...
pthread_t threadB = pthread_self();
if (pthread_equal(threadA, threadB)) printf("Thread B is same as thread A.\n");
else printf("Thread B is NOT same as thread A.\n");
I think not only is the question not clear but most people also are not cognizant of the difference. Examine the following saying,
方法返回的线程 ID 不同
Linux 特定的 gettid()系统调用。分配 POSIX 线程 ID
并由线程实现维护。线程 ID 返回
by gettid() is a number (similar to a process ID) that is assigned by
尽管每个 POSIX 线程都有一个惟一的内核线程 ID
在 Linux NPTL 线程实现中,通常是一个应用程序
不需要知道内核 ID (如果它是可移植的,那么它就不是可移植的)
depends on knowing them).