返回值并在x秒后跳过一行

时间:2018-01-19 01:18:00

标签: python multithreading multiprocessing

说我有这样的代码:

def bar(a):
    def foo():
        b = 1+a
        c = b + 10 #line responsible for en
        z = b+c
        return z

    if __name__ == '__main__':
        # Start bar as a process
        p = multiprocessing.Process(target=foo)
        p.start()

        # Wait for 10 seconds or until process finishes
        p.join(10)

        # If thread is still active
        if p.is_alive():
            print(b)

            # Terminate
            p.terminate()
            p.join()
    return foo()

data['D'] = data['E'].apply(bar)

代码无休止地运行而没有错误,因此异常处理没有帮助。我想返回b以获取系列中超过x秒的元素,然后移动到系列中的下一个元素而不终止整个操作。

因此,如果data['E']中有10个元素,如果将foo应用于第三个元素需要超过x秒,则返回b并继续前进到第四个元素。 / p>

我试图使用多处理,如第二个解决方案所示:Timeout on a function call无济于事。代码原样,仍然无休止地运行。请帮助。

0 个答案:

没有答案