【发布时间】:2019-03-30 23:06:52
【问题描述】:
我有一个烧瓶应用程序,我想在后台运行一个 while 循环。我的第一个想法是使用线程同时运行它们。我偶然发现的问题是只有第一个线程有效(无论是烧瓶应用程序还是带有 while 循环的函数首先出现)。我的代码是:
from multiprocessing import Process
if __name__ == '__main__':
Process(target = app.run(host='0.0.0.0', port=8080)).start()
Process(target = statupdate()).start()
注意:我还使用了“线程”库,并让烧瓶应用程序拥有自己的功能。
有什么方法可以修复这个错误或同时运行这两个错误吗?
【问题讨论】:
-
您缺少太多基础知识,无法在答案中涵盖它们。 Learn the basics of concurrency。您似乎不了解线程和进程之间的区别。您似乎完全不知道 GIL。看起来您正在调用
app.run(...)和startupdate(),然后调用一个新进程来调用其结果。这几乎肯定是错误的,因为target本身应该是可调用的。 SO 并不打算取代那种研究;您需要更好地掌握基础知识,才能使您的问题变得足够狭窄。
标签: python python-3.x multithreading flask