我有一个包含字典的类
class OrderBook:
orders = {'Restaurant1': None,
'Restaurant2': None,
'Restaurant3': None,
'Restaurant4': None}
@staticmethod
def addOrder(restaurant_name, orders):
OrderBook.orders[restaurant_name] = orders
我正在运行 4 个线程(每个餐厅一个)调用方法 OrderBook.addOrder
。这是每个线程运行的函数:
def addOrders(restaurant_name):
#creates orders
...
OrderBook.addOrder(restaurant_name, orders)
这样安全吗,还是我必须在调用 addOrder
之前使用锁?
最佳答案
Python 的内置结构对于单个操作是线程安全的,但有时很难看出一条语句在哪里真正变成了多个操作。
您的代码应该是安全的。请记住:这里的锁几乎不会增加任何开销,并且会让您高枕无忧。
关于python - Python字典中的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6953351/