Вот такая простая проблема. deque.clear() в P0 нормально работает если функцию вызывать непосредственно, но не работает, если вызывать через Process.
Как очистить очередь в этом случае? (global не помогает точно)
from collections import deque
from time import sleep
from multiprocessing import Process
buffer = deque([],1200)
in_data = [range(0,441)]
def append():
buffer.append(in_data)
def P0():
buffer.clear()
if __name__ == '__main__':
for _ in range(5):
append()
print("loop A, len after append: {}".format(len(buffer)))
sleep(1)
print("starting P0")
Process(target=P0, args=()).start()
for _ in range(5):
append()
print("loop B, len after append: {}".format(len(buffer)))
sleep(1)