多处理和多线程的简单示例

2024-09-28 18:51:47 发布

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

我有以下代码:

class SplunkUKAnalyser(object):

    def __init__
    def method1
    def method2
    def method2
    ...

class SplunkDEAnalyser(SplunkUKAnalyser):

    def __init__    (Over-ridden)
    def method1     (Over-ridden)
    def method2
    def method2
    ...

perform_uk_analysis():
    my_uk_analyser = SplunkUKAnalyser() 

perform_de_analysis():
    my_de_analyser = SplunkDEAnalyser()

如果我只执行以下步骤,一切都会很好:

perform_uk_analysis()
perform_de_analysis()

如何使最后两个语句同时执行。(使用多处理和/或多线程)?你知道吗

从我的测试来看,第二条语句似乎是执行的,尽管第一条语句还没有完全完成,但我希望合并真正的并发性。你知道吗

如有任何其他建议,我们将不胜感激。你知道吗

非常感谢。你知道吗


Tags: initmydefdeanalysis语句performclass
1条回答
网友
1楼 · 发布于 2024-09-28 18:51:47

由于GIL (Global Interpreter Lock),您无法使用threading实现“真正的并发”。你知道吗

但是,使用multiprocessing并发运行多个任务很容易:

import multiprocessing

process1 = multiprocessing.Process(target=perform_uk_analysis)
process2 = multiprocessing.Process(target=perform_de_analysis)
# you can optionally daemoize the process
process2.daemon = True
# run the tasks concurrently
process1.start()
process2.start()
# you can optionally wait for a process to finish
process2.join()

对于使用不同参数运行相同函数的任务,请考虑使用multiprocessing.Pool,这是一种更方便的解决方案。你知道吗

相关问题 更多 >