我已经在 Python 文件myfile.py中成功实现了线程 + 队列。现在我希望这个文件作为守护进程运行,因为当所有线程都完成了它们的任务时,我想重新填充队列并让线程处理新任务。我在这里尝试了一些代码,但程序没有正确响应:
# myfile.py
threadList = list()
i = 0
while i < 10:
i += 1
threadName = "T" + str(i)
threadList.append(threadName)
#create queue
myQueue = Queue.Queue();
# create thread objects
threads = list()
for threadName in threadList:
thread = WorkerThread(threadName, myQueue)
thread.start()
threads.append(thread)
def hello():
while True:
logger.debug("true")
if myQueue.empty():
logger.debug("empty")
else:
logger.debug("not empty")
def run():
daemon_context = daemon.DaemonContext(files_preserve=[handler.stream],
stdout = open("./stdout.log","wb"),
stderr = open("./stderr.log","wb"))
with daemon_context:
hello()
if __name__ == "__main__":
run()
执行脚本时,它会打印“true”并停在那里。它不会记录“空”或“非空”。终端和 stderr.log 中没有显示错误。但是,如果我删除条件检查myQueue.empty()
,守护程序将继续打印“true”。为什么队列不能在守护进程中工作?