gpt4 book ai didi

python - 检查当前进程/线程是否是主进程/线程的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:29 24 4
gpt4 key购买 nike

生成多个线程时,我可以执行以下操作来检查该线程是否是主线程:

isinstance(threading.currentThread(), threading._MainThread)

但是这个方法依赖于threading包的一个“protected”成员,并且在多处理库中没有类似的类型可以导入,所以检查当前进程是否是主进程的正确方法是什么(并做和线程一样?)

我现在是这样做的:

multiprocessing.current_process().name == 'MainProcess'

但是这些名字可靠吗?

最佳答案

这个看起来比较靠谱:

assert threading.current_thread() == threading.main_thread()

因为它不依赖于静态文本。

对于进程,执行 process.name == 'MainProcess' 是不可靠的。你应该这样做:

import re

def is_main_process(process_name):
return not bool(re.match(r'Process-\d+', process_name))

原因是子进程保证有一个这样格式的名字:Process-N

关于python - 检查当前进程/线程是否是主进程/线程的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48719033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com