Но код функций выполняется только один раз, а не в циклически.
Убрал while в функциях.
Добавил run() в процессах и заработало выполнение функций в цикле, причем id стал одинаковый у обоих функций!
Наверное я на правильном пути?
from multiprocessing import Process
import os
def W(y):
#while(True):
y = y + 100
time.sleep(1)
print(('W process id:', os.getpid(), time.time()))
return y*y
def f(x):
#while(True):
x = x + 100
time.sleep(1)
print(('f process id:', os.getpid(), time.time()))
return x*x
if __name__ == '__main__':
p1 = Process(target=f, args=(10,))
print(p1)
p2 = Process(target=W, args=(20,))
print(p2)
p1.start()
p2.start()
while(True):
p1.run()
p2.run()
Running: C:\project Python\Simulator_modbusTCP\start.py (Fri Aug 26 16:46:22 2016)
<Process(Process-1, initial)>
<Process(Process-2, initial)>
('f process id:', 10480, 1472211983.603324)
('f process id:', 9308, 1472211983.728124)
('W process id:', 10328, 1472211983.759324)
('W process id:', 10480, 1472211984.603726)
('f process id:', 10480, 1472211985.617728)
('W process id:', 10480, 1472211986.63173)
('f process id:', 10480, 1472211987.645731)
('W process id:', 10480, 1472211988.659733)