运行 两项 python 功能与睡眠同时进行

Run two python functions simultaneously with sleep

我有两个函数,但我无法通过 foo() 休眠一段时间的函数让它们一直处于 运行。

import time

filename = "test.dat"

def foo():
    print "It deletes dat file and creates a new one"
    time.sleep(xxx)

def bar():
    print "Writes to dat file"

while True:
    foo()
    bar()

我不确定我是否正确理解了这个问题,但试试这个,如果这就是你想要的,请告诉我

import time
from multiprocessing import Process

def foo(x):
    while True:
        print ("It deletes dat file and creates new one")
        time.sleep(x)

def bar():
    while True:
        print ("Wtires to dat file")

process1 = Process(target=foo, args=(0.05,))
process2 = Process(target=bar)
process1.start()
process2.start()

使用此代码 foo() 将 运行 中断 x = 0.05 秒,并且 bar() 将一直 运行...但请注意 "all the time" 意味着 veeeeery 经常而且没有休息:)

问题来了: filename 被定义为 global variable,一旦 foo() 删除该文件并创建一个新文件,filename 就会变成 local variable,因此 bar() 函数找不到 dat 文件,这就是它根本找不到 运行 的原因。