假设多个python进程/客户端在无法控制的时间尝试执行此类操作。
cache.set("GLOBAL_KEY", Value)
这样安全还是有机会获得损坏的价值?
如果这不安全,有哪些技术可以保护值不受客户端并发访问的影响?
答案 0 :(得分:0)
由于此问题被标记为multiprocessing
,我只是指这些类型的并行流程。
也就是说,有a couple of ways分享价值或州:
from multiprocessing import Process, Value, Array, Lock
def f(n, a, l):
n.value = 3.1415927
for i in range(len(a)):
l.acquire(()
try:
a[i] = -a[i]
finally:
l.release()
if __name__ == '__main__':
num = Value('d', 0.0)
arr = Array('i', range(10))
lock = Lock()
p = Process(target=f, args=(num, arr, lock))
p.start()
p.join()
print(num.value)
print(arr[:])
请注意,您需要与control concurrent access分享价值。