代码之家  ›  专栏  ›  技术社区  ›  willurd

cherrypy如何处理用户线程?

  •  4
  • willurd  · 技术社区  · 16 年前

    我正在开发django应用程序,我使用cherrypy作为服务器。Cherrypy为每个页面视图创建一个新线程。我希望能够从任何线程中访问所有这些线程(负责与django对话的线程)。更具体地说,我希望能够从这些线程中的任何线程访问每个线程的线程数据。这可能吗?如果是,我该怎么做?

    2 回复  |  直到 16 年前
        1
  •  6
  •   fumanchu    16 年前

    CherryPy的wsgiserver不会为每个请求创建新线程——它使用一个池。这些工作线程中的每一个都是threading.Thread的子类,因此所有这些线程都应该可以通过threading.enumerate()访问。

    真正地 真正地 知道你在做什么,最好的技术通常是在全局容器中附加一个对这些东西的引用,同时将它们插入到thread_数据结构中。我建议将带有weakrefs的dict作为这些全局容器的键——有足够多的Python ORM将其用于连接池(例如,请参阅我自己的Geniusql),您应该能够相当轻松地学习如何实现它们。

        2
  •  4
  •   ironfroggy    16 年前

    当提出这样的问题时,有一个更深层次的目标。我怀疑,您认为线程间通信能够解决的问题实际上可以通过其他更安全的方式解决。