linux pthread循环执行,linux – 为什么pthread_self()多次返回相同的id?
时间: 2023-08-23 20:03:58 浏览: 79
回调函数被连续执行两次或多次的原因
4星 · 用户满意度95%
在Linux中,每个线程都由内核分配唯一的线程ID(TID),该ID在整个系统中是唯一的。当你调用pthread_self()函数时,它会返回当前线程的TID。但是,如果你多次调用pthread_self()函数,它可能会返回相同的ID,这是因为pthread_self()函数只返回当前线程的TID,而不是每次调用时都生成一个新的ID。
另外,当一个线程结束时,它的TID可能被重新分配给另一个新的线程。如果你在一个线程结束后立即创建一个新的线程,那么新线程的TID可能会与之前结束的线程的TID相同。这也可能是pthread_self()函数多次返回相同的ID的原因之一。
总之,pthread_self()函数只是返回当前线程的TID,而不是每次调用都生成一个新的ID。如果你需要确保每个线程都有唯一的ID,可以在创建线程时使用pthread_create()函数指定线程ID。
阅读全文