假设我在python中有一些字典,我希望能够保证给定键的值只设置一次。
我知道我可以通过选中has_key(newkey)
,然后选择dict[newkey]=value
来完成此操作。
这适用于单线程应用程序:
d = { 1:'spam', 2:'eggs' }
def add_entry( key, val ):
if not d.has_key(key):
d[key] = val
else:
raise Exception('Nice try, but value with key '%s' already exists' %str(key))
# Succeeds
add_entry( 3, 'ham' )
# Fails with exception
add_entry( 2, 'cheese' )
但是,我想从多线程应用程序中实现相同的行为。
上面add_entry
的线程安全impl是什么?有没有内置的方法/数据结构我只是这样做?或者我需要使用显式锁?