首页 > 解决方案 > 从两个不同的文件并行调用 python 函数

问题描述

假设我们有两个文件 file1.py 和 file2.py

文件1.py:

  from sample import common_func
    common_func()

文件2.py:

  from sample import common_func
    common_func()

示例.py:

import time
def common_func():
    print("I am common_func")
    time.sleep(10)
    print("After sleep")

在这里,我们从另外两个文件(file1,file2)并行/并发调用 sample.py 中的 common_func。我们的目标是,如果 file1.py 先调用 common_func,那么 file2.py 必须等到 file1 使用 common_func 完成。

请帮助我实现这种行为。

标签: python

解决方案


如果 file1.py 和 file2.py 是长时间运行的进程,那么您可以使用如下代码相互通信并监听 file1.py 功能是否已经完成,如果是,那么您可以启动 file2.py 代码,否则睡觉。

示例代码:

from subprocess import Popen, PIPE

p = Popen(['program', 'arg1'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
rc = p.returncode

推荐阅读