Skip to main content
 首页 » 编程设计

python之同时运行多个循环

2025年05月04日16artech

我正在尝试使用多处理同时运行 2 个循环,但它们似乎只是按顺序运行。 当第一个循环启动 tkinter 的 mainloop() 进程时,另一个循环不会启动,直到 GUI 窗口关闭,然后计数循环开始。 我尝试了多线程和多处理,结果相同。我需要它们同时运行。下面是一个演示问题的简单示例。我正在使用 python 2.7.10。

from multiprocessing import Process 
from Tkinter import * 
import time 
 
 
 
count = 0 
 
def counting(): 
    while True: 
        global count 
        count = count + 1 
        print count 
        time.sleep(1) 
 
class App(): 
 
    def __init__(self): 
        self.myGUI = Tk() 
        self.myGUI.geometry('800x600') 
 
        self.labelVar = StringVar() 
        self.labelVar.set("test") 
 
        self.label1 = Label(self.myGUI, textvariable=self.labelVar) 
        self.label1.grid(row=0, column=0) 
 
 
app = App() 
 
t1 = Process(target = app.myGUI.mainloop()) 
t2 = Process(target = counting()) 
 
t1.start() 
t2.start() 

请您参考如下方法:

您正在调用函数,并等待它们完成,以便将它们的结果作为 Process 目标传递。而是传递函数本身 - 也就是说,改变这个:

t1 = Process(target = app.myGUI.mainloop()) 
t2 = Process(target = counting()) 

为此:

t1 = Process(target=app.myGUI.mainloop) 
t2 = Process(target=counting) 

以便进程可以调用这些函数(在子进程中)。