我有以下测试代码。我希望共享Value对象的值能够不断更新。但是似乎共享的Value对象的值只能更改一次。第一次更改后,其值不再更改。我在这里做错了什么?
环境: Python 2.7.15 multiprocess == 0.70.6.1
import time
import datetime as dt
from multiprocessing import Value
def test():
global ts
prev = dt.datetime.fromtimestamp(ts.value)
with ts.get_lock():
# print ts.value
# print "got lock"
ts.value = time.time()
after = dt.datetime.fromtimestamp(ts.value)
print "prev:{}, after:{}".format(prev,after)
if __name__=="__main__":
ts = Value("f",time.time()-3600)
while True:
test()
time.sleep(5)
支出:
prev:2019-03-11 11:16:32, after:2019-03-11 12:16:16
prev:2019-03-11 12:16:16, after:2019-03-11 12:16:16
prev:2019-03-11 12:16:16, after:2019-03-11 12:16:16
prev:2019-03-11 12:16:16, after:2019-03-11 12:16:16
编辑:
好的,
我想我明白了。所有需要的就是将代码形式从Value(“ f”)更改为Value(“ d”)。之后,就没有问题了。