【问题标题】:Can objects be shared between a thread and wx python and still keep data in sync?对象可以在线程和 wx python 之间共享并且仍然保持数据同步吗?
【发布时间】:2017-09-09 21:56:18
【问题描述】:

我正在为PyCaster 构建一个 gui,我需要从 gui 中进行更改并应用于套接字线程。我对线程的理解是一旦开始,一切都会成为该线程的本地内容,包括对象实例。套接字线程使用time.sleep 每 0.1(假设毫秒)休眠一次。线程套接字具有触发并被 gui 看到的事件。反正有没有做相反的事情?意思是线程看到的事件触发了我可以传递数据的方式。

【问题讨论】:

    标签: python multithreading wxpython


    【解决方案1】:

    您是否考虑过使用类似 Python 的 Queue 同步原语来在多个线程之间传递信息?

    您将在您的main.py 文件中实例化Queue 对象,然后将此队列实例传递给您的多个子线程。然后,您的 GUI 线程可以将新事件推送到该 queue 实例,而您的第二个非 GUI 线程将不断尝试调用 queue.get(),然后在 queue.get() 不是 None 时执行它需要执行的任何操作。

    queue 类的官方文档可以在这里找到:https://docs.python.org/3.6/library/queue.html,底部有一个相当不错的示例!

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多