gpt4 book ai didi

python - 在使用多个正则表达式分析单个字符串时,线程或多处理能否提高性能?

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:33 26 4
gpt4 key购买 nike

如果我想使用几十个正则表达式分析一个字符串,
线程或多处理模块能否提高性能?
换句话说,在多个线程或进程上分析字符串会比以下更快:

match = re.search(regex1, string)
if match:
afunction(match)
else:
match = re.search(regex2, string)
if match:
bfunction(match)
else:
match = re.search(regex3, string)
if match:
cfunction(match)
...

匹配的正则表达式不会超过一个,所以这不是问题。
如果答案是多处理,您会推荐研究什么技术(队列、管道)?

最佳答案

Python 线程不会提高性能,因为 GIL 会阻止多个线程同时运行。如果你有一台多核机器,多个进程可能会加快速度,但前提是产生子进程和传递数据的成本低于执行 RE 搜索的成本。

如果您经常这样做,您可能会研究线程池。

关于python - 在使用多个正则表达式分析单个字符串时,线程或多处理能否提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984288/

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