Я одновременно запускаю 3 функции (после выполнения main), но в функции func2 цикл не работает, тк массив, по которому этот цикл проходит, пуст
Я так понимаю три функции не видят каких-либо изменений до выполнения самих этих функций, как это можно исправить?
Нужно, чтобы цикл видел уже готовый массив: x = [1, 2, 3, 4, 5]
Я так понимаю три функции не видят каких-либо изменений до выполнения самих этих функций, как это можно исправить?
Python:
from multiprocessing import Process
import time
x = []
i = [1, 2, 3, 4, 5]
def main():
for item in i:
x.append(item)
print('main done')
def func1():
print ('start func1')
def func2():
print ('start func2')
for t in x:
print(t)
def func3():
print ('start func3')
if __name__=='__main__':
while True:
main()
p1 = Process(target=func1)
p2 = Process(target=func2)
p3 = Process(target=func3)
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
print('end')
time.sleep(10)
print('end_2')
Нужно, чтобы цикл видел уже готовый массив: x = [1, 2, 3, 4, 5]