GUI循环和另一个循环

时间:2017-04-23 09:34:01

标签: python loops cpu infinite-loop

我对循环感到困惑。例如在python3:

import pygame
pygame.init()
....
....

while True:
    ....
    ....
    pygame.display.update()

当我使用它时,程序使用,约为%110 CPU。但是当我使用像tkinter这样的GUI工具包时:

import tkinter

root = tkinter.Tk()
....
....
....
root.mainloop()

使用约%0.3 CPU。我认为两者都是无限循环。如何优化第一个代码?

1 个答案:

答案 0 :(得分:1)

主要区别在于,您的典型GUI工具包将阻塞等待新事件的到来,并且循环体(包括绘制操作)仅在响应此类事件时执行。

然而,典型的游戏循环不会等待事件到达,因为正在进行模拟,需要不断更新,然后更新显示。

即。 pygame循环旨在尽可能多地占用CPU周期,以提供最平滑的模拟。然而,tkinter循环被设计为花费尽可能多的CPU周期来节省系统资源。