我有一個與扭曲的Python併發訪問列表的問題。 我有一個扭曲的類,它將數據添加到列表中,並且每4秒調用一次該方法。這個方法是列表的元素並且執行一些操作。 我擔心從ossPeriodic和從dataReceived訪問相同的列表都可能導致一致性問題。 這裏是代碼:扭曲和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 2013-03-20 22:01:49