我希望能够设置自己的线程 ID,例如,对于我在应用程序中创建的四个线程,我希望将它们的 ID 设置为 0、1、2 和 3。我知道您可以使用线程局部变量并为其分配 ID。但是,由于某种原因,我无法使用线程局部变量。您可能会说,将线程 ID 作为参数传递给线程函数可以解决问题,但在这种情况下,您需要在线程使用的每个函数中传递线程 ID,这当然是不可行的。
在谷歌上进行了一些搜索后,我发现了set_tid_address,它的名字看起来很有趣,但我不确定它是否可以实现我的目的,因为它的文档不清楚。有什么想法,如何实现这一目标?
最佳答案
PID 由内核管理,在我的内核上使用 pidmap_array 位图。或多或少,下一个 PID 将是最后一个加一(直到根据需要循环返回开始)。除了上面建议的私有(private)重新映射之外,您无能为力。
关于c - 设置线程ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298176/