gpt4 book ai didi

python - 如何在 python 中同时运行 2个循环?

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:25 34 4
gpt4 key购买 nike

我有一个具有嵌入式服务器(使用电路)的应用程序 (Gtk)。两个组件(GUI 和服务器)都有无限循环。如何同时运行两个循环?

我还需要服务器循环在 gtk 循环结束时结束。

示例服务器的代码

from circuits.web import Server, Controller
import os

class MyServer(Controller):

def index(self):

return "Hello World"


server = Server(8000)
server += MyServer()
server.run()

以及gtk应用程序示例的代码

import gtk

class App:

def __init__(self):

self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy",gtk.main_quit)
self.window.show_all()

gtk.main()

if __name__ == '__main__':
app = App()

最佳答案

您可以使用 multiprocessing执行此操作的模块:

from multiprocessing import Process

def run_app():
... run the app ...

def run_server():
... run the server ...

def main():
app = Process(target=run_app)
app.start()

server = Process(target=run_server)
server.start()

app.join()
server.terminate()

if __name__ == "__main__":
main()

否则,如果您在 Unix 上使用 Python < 2.6,您可以摆弄 os.fork() 来做同样的事情。 Threading 可能可以工作,但我不知道 GTK 或电路与线程的配合情况如何。

关于python - 如何在 python 中同时运行 2个循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4423469/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com