运行 两项 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
文件,这就是它根本找不到 运行 的原因。
我有两个函数,但我无法通过 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
文件,这就是它根本找不到 运行 的原因。