这个简单的python 2.7多处理测试代码有什么问题?

时间:2019-03-11 19:31:30

标签: python python-2.7

我有以下测试代码。我希望共享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”)。之后,就没有问题了。

0 个答案:

没有答案