pygame python库中的pygame.event.wait()占用了100%的CPU

pygame python库中的pygame.event.wait()占用了100%的CPU,python,pygame,Python,Pygame,我在脚本中使用pygame.event.wait()函数来降低CPU使用率。 我在这里发现了这个想法: 此处的用法示例如下: 我试图找出函数无法按预期工作的原因,以及脚本中的错误在哪里: import pygame from pygame.locals import * import threading def read_keyboard(): pygame.event.clear() while True: event =

我在脚本中使用pygame.event.wait()函数来降低CPU使用率。 我在这里发现了这个想法:

此处的用法示例如下:

我试图找出函数无法按预期工作的原因,以及脚本中的错误在哪里:

import pygame    
from pygame.locals import *    
import threading    


def read_keyboard():    
  pygame.event.clear()    
  while True:    
    event = pygame.event.wait()     # here we wait until user hits keyboard     
    player_input = ''     
    font = pygame.font.Font(None, 50)    
    if event.type == KEYDOWN:    
      if event.unicode == 'h':    
      player_input = 'hello'     
    elif event.type == QUIT:    
      return     

read_keyboard_thread = threading.Thread(target = read_keyboard)

pygame.init()                       
screen = pygame.display.set_mode((480,360))                       
read_keyboard_thread.start()

这个问题似乎是由pygame如何处理声音引起的。CPU利用率似乎是pygame的一个已知问题,关于它有不同的帖子,特别是这篇文章帮助解决了这个问题:

我更新了代码,在pygame中禁用了一些混音器类,这很有帮助。我很幸运,在这个项目中不需要声音:-)

最后,如果需要混音器,建议从源代码处编译pygame来解决这个问题


“未按预期工作”实际问题是什么?问题是一旦启动应用程序,它将消耗100%的CPUyes。是我干的。是的。但我不确定它应该如何工作。如果我删除wait(),我会得到同样的结果CPU使用率100%你会得到无数的打印语句,还是只有一条是通过keypress得到的?2条是通过keypress得到的。等待前打印一次,等待后打印一次
 53 pygame.init()    #  here we start all of the pygame stuff
 54 pygame.mixer.quit()