要解决“不同线程之间调用 threading.get_ident() 返回相同的ID”的问题,可以使用 threading.current_thread().ident 来获取每个线程的唯一标识符。下面是一个示例代码:
import threading
def worker():
print("Thread ID:", threading.current_thread().ident)
threads = []
for i in range(5):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
for t in threads:
t.join()
在上面的示例中,我们定义了一个 worker 函数,该函数用于打印当前线程的唯一标识符。我们创建了5个线程,并将它们添加到一个线程列表中。然后,我们依次启动这些线程,并使用 join() 方法等待所有线程完成。
运行上述代码,你会发现每个线程的唯一标识符都是不同的。