假设多个python进程/客户端在不可控的时间尝试做这样的事情。
cache.set("GLOBAL_KEY", Value)这是安全的,还是有机会获得损坏的值?
如果这是不安全的,那么有什么技术可以保护这些值不受客户端并发访问的影响?
发布于 2015-10-14 20:58:55
因为这个问题被标记为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。
https://stackoverflow.com/questions/33085947
复制相似问题