如何查看哪个进程拥有python线程

2024-04-29 00:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我对多线程的理解是,一个进程(cpu核心)可以运行多个线程

到目前为止,在python中,当我想检查哪个线程正在调用函数时,我会在函数内部打印以下内容:

print('current thread:', threading.current_thread())

但这只告诉我哪根线。有没有一种方法可以显示哪个进程拥有这个线程并打印它


Tags: 方法函数核心进程cpucurrent线程thread
1条回答
网友
1楼 · 发布于 2024-04-29 00:36:29

线程由启动它们的进程拥有。您可以使用os.getpid()获取进程ID

进程ID不会在线程之间更改:

>>> import os
>>> import threading
>>>
>>> def print_process_id():
...   print(threading.current_thread(), os.getpid())
...
>>>
>>> threading.Thread(target=print_process_id).start()
<Thread(Thread-1, started 123145410715648)> 62999
>>> threading.Thread(target=print_process_id).start()
<Thread(Thread-2, started 123145410715648)> 62999
>>> threading.Thread(target=print_process_id).start()
<Thread(Thread-3, started 123145410715648)> 62999
>>> threading.Thread(target=print_process_id).start()
<Thread(Thread-4, started 123145410715648)> 62999
>>>

如果您想知道哪个物理/逻辑CPU内核当前正在运行您的代码,并且您在受支持的平台上,您可以使用psutil模块,如https://stackoverflow.com/a/56431370/51685中所述

相关问题 更多 >