我有两个函数,但我不能让它们一直运行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()
答案 0 :(得分:0)
我不确定我是否正确理解了这个问题,但试试这个问题并让我知道这是否是你想要的
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()
将一直运行...但请注意,“始终”意味着经常并且没有休息:)
答案 1 :(得分:0)
问题在于:
filename
被定义为globa
变量,一旦foo()删除该文件并创建一个新文件,filename
现在是一个局部变量,因此bar()函数可以&#39 ;找到dat
文件,以及它根本不运行的原因。
谢谢大家的支持和时间。