使用并行进程更新主进程

时间:2018-03-28 03:14:32

标签: python python-3.x parallel-processing multiprocessing

我一直在研究多处理模块来解决这个问题,但我并不完全确定我需要的所有组件或如何构建它们。我试图获得的基本结构/逻辑虽然如此:

import datetime
import time
import multiprocessing

class So_Classy():
    def __init__(self):
        self.value = 0

    def update_values(self):
        print('In the process doing stuff!')
        while True:
            self.value = self.value + 1
            time.sleep(0.1)
            print("Self.value = {self.value}")

    def run(self):
        # Constantly update old value to a new one
        try:
            if __name__ == '__main__':
                p = multiprocessing.Process(target=self.update_values)
                p.start()
                print("Process started!")
        except Exception as e:
            print(str(e))

    def get_result(self, arg):
        return self.value*arg

##### MAIN PROGRAM #####
# Initialize process given certain parameters
sc = So_Classy()

# This spawns a process running an infinite while loop
sc.run()

one_second = datetime.datetime.now() + datetime.timedelta(seconds=1)

while True:
    if datetime.datetime.now() > one_second:
        # Pass an arg to sc and do a calc with it
        print(sc.get_result(5))
        one_second = datetime.datetime.now() + datetime.timedelta(seconds=1)

run()函数在不引起异常的情况下直到最后但实际上并没有进入该过程。不知道为什么。 :\

我将使用的实际过程将是计算密集型的,因此它必须作为一个单独的过程运行。

0 个答案:

没有答案