Я работаю над интерфейсом PyQt5 с некоторыми вычислительными функциями в качестве бэкэнда.Программа берет некоторые входные данные из графического интерфейса и генерирует математические функции, а затем передается в подсчет серверной части, где я использовал многопроцессорность.Проблема в том, что подпроцессы или пул, вместо того, чтобы принимать измененные математические функции, они принимают исходные функции.Я перепробовал десятки методов, но ни один из них не работал, и большинство из них сосредоточены на том, как извлекать объекты из подпроцессов, а не в обратном порядке.
Я просто воспроизвел его.Надеюсь, что кто-нибудь найдет решение или предложит другие способы архивации параллелизма.Большое спасибо заранее.
import multiprocessing as mp
from multiprocessing.managers import BaseManager
class test_f():
def __init__(self,a):
global b
b=a
def f1(self,l):
return b*l
def f2(self,l):
return b*b*l
def get(self):
return b
class MyManager(BaseManager):
pass
MyManager.register('func',test_f)
def cal(para):
#with lock:
x=para[0]
func=para[1]
#setup(k.value)
print(func,a)
print(func.f1(x)+func.f2(x))
if __name__=='__main__':
manager=MyManager()
manager.start()
func=manager.func(2)
p = mp.Process(target=cal, args=[(1,func),])
p.start()
p.join()