У меня вопрос с параллельным доступом к списку в python с помощью twisted. У меня есть скрученный класс, который добавляет данные в список и метод, который вызывается каждые 4 секунды. Это метод является элементом списка и выполняет некоторую операцию. Я боюсь, что доступ к тому же списку как из ossPeriodic, так и из dataReceived может создать проблему согласованности. Вот код:Совместимый с Twisted и python список
ossStorage=[]
def ossPeriodic():
for i in ossStorage:
ossStorage.remove(i)
db.insertDataToDb(i)
reactor.callLater(4, ossPeriodic)
class OSS(Protocol):
def dataReceived(self, data):
account = pickle.loads(data)
ossStorage.append(account)
def main():
ossFactory = Factory()
ossFactory.protocol = OSS
reactor.listenTCP(50000, ossFactory)
reactor.callLater(4, ossPeriodic)
reactor.run()
Должен ли я использовать замок или что-то подобное? Спасибо!
Возможно, использование очереди должно помочь? – asdf