2024-04-29 00:36:29 发布
网友
我对多线程的理解是,一个进程(cpu核心)可以运行多个线程
到目前为止,在python中,当我想检查哪个线程正在调用函数时,我会在函数内部打印以下内容:
print('current thread:', threading.current_thread())
但这只告诉我哪根线。有没有一种方法可以显示哪个进程拥有这个线程并打印它
线程由启动它们的进程拥有。您可以使用os.getpid()获取进程ID
os.getpid()
进程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中所述
线程由启动它们的进程拥有。您可以使用
os.getpid()
获取进程ID进程ID不会在线程之间更改:
如果您想知道哪个物理/逻辑CPU内核当前正在运行您的代码,并且您在受支持的平台上,您可以使用psutil模块,如https://stackoverflow.com/a/56431370/51685中所述
相关问题 更多 >
编程相关推荐