微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在线程或进程中使用pygame是否安全?

如何解决在线程或进程中使用pygame是否安全?

我需要在另一个线程中使用pygame,即pygame循环和所有渲染都在单独的线程上。我不能在主线程中使用pygame。

我听说有些环境不喜欢在主线程之外进行渲染,但是我无法在线找到任何确认或示例。

那么,在单独的线程上运行pygame是否安全?如果不是,那么在单独的进程上使用pygame是否安全?如果没有,我有什么选择?

请明确一点,我想做这样的事情:

from threading import Thread  # should I use multiprocessing.Process?

import pygame as pg


def run_game():
    pg.init()
    screen = pg.display.set_mode(...)
    running = True
    while running:
        # all pygame event handling and logic
        pg.dispaly.flip()


if __name__ == "__main__":
    t = Thread(target=run_game,args=())  # should be Process?
    t.start()
    # do other things on the main thread
    t.join()

在我的机器上(Windows 10,Python 3.7.9),该示例可以很好地工作,并且还可以与multiprocessing.Process而不是threading.Thread一起使用。我不知道它是否可以在所有平台上都可以使用,更复杂的示例是否可以在我的计算机上使用。

那么,这是否安全,或者我需要做一些其他事情才能使它起作用?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。