0
比方說,我有一個只包含一個成員的類,它是一個列表。在異步編程中修改列表
class List:
def __init__(self):
self.l = []
def add_to_list(self, element):
self.l.append(element)
而現在,我有很多並行在上表實例執行add_to_list
asyncio.Task
的運行協同程序。這是否有理由保護名單asyncio.Lock
這樣的:
import asyncio
class List:
def __init__(self):
self.lock = asyncio.Lock()
self.l = []
@asyncio.coroutine
def add_to_list(self, element):
with (yield from self.lock):
self.l.append(element)
?
我認爲你是對的:) – Yuras