В программе необходимо иметь общую переменную, в данном случае список deque, между процессами. При использовании модуля multiprocessing, каждый процесс работает с отдельной копией списка, не используя общую переданную переменную. При использовании модуля threading.Thread каждый поток работает с общим списком, так как нужно. В программе необходимо использовать именно модуль multiprocessing. Прошу подсказать как расшарить переменную между процессами модуля multiprocessing.
#-*- coding: utf-8 -*- import multiprocessing as mp import threading import time import random from collections import deque class ManageUpdate(mp.Process): # class ManageUpdate(threading.Thread): def __init__(self, queue, condition): # threading.Thread.__init__(self) mp.Process.__init__(self) self.queue = queue self.condition = condition def run(self): while True: rand_data = '%d' % random.randint(0, 256) self.condition.acquire() print 'condition acquire by %s' % self.name self.queue.append(rand_data) print 'after change', self.queue print '===' * 10 print '\n' self.condition.notify() self.condition.release() time.sleep(random.random()) if __name__ == '__main__': condition = mp.Condition() d = deque(maxlen=9) d.append('CHECK CHECK CHECK') for count in range(5): worker = ManageUpdate(d, condition) worker.daemon = True worker.start() time.sleep(3)