如何使用多线程在python中从另一个程序(比如说“c.py”)并行运行两个独立的程序(比如“a.py”和“b.py”)?

时间:2017-03-12 11:19:21

标签: python multithreading

我们有两个名为'a.py'和'b.py'的独立程序。我们需要在另一个名为'c.py'的程序中以两个单独的线程运行它们。这可能吗?如果那么,它是如何实现的?

1 个答案:

答案 0 :(得分:0)

简而言之,您只需要将函数的代码包装在函数中(例如main()),然后使用multiprocessingthreading模块同时执行它们。

我们假设您的文件采用以下格式:

# a.py

def main():
    for i in xrange(10000):
        print 'A says: %d' % (i)

# b.py

def main():
    for i in xrange(10000):
        print 'B says: %d' % (i)

然后您可以按以下方式并行执行这两个文件:

# parallel.py
from multiprocessing import Process
import imp

if __name__ == '__main__':
    code_a = imp.load_source('code_a', 'a.py')
    code_b = imp.load_source('code_b', 'b.py')    

    p1 = Process(target=code_a.main)
    p1.start()

    p2 = Process(target=code_b.main)
    p2.start()

    p1.join()
    p2.join()

你会得到这样的结果:

  

...
  A说:862
  A说:865
  A说:866
   B说:222
   B说:223
   B说:224
  A说:867
  A说:868
  A说:869
  ...