当前位置:  开发笔记 > 编程语言 > 正文

cherrypy如何处理用户线程?

如何解决《cherrypy如何处理用户线程?》经验,为你挑选了1个好方法。

我正在研究django app,我正在使用cherrypy作为服务器.Cherrypy为每个页面视图创建一个新线程.我希望能够从其中任何一个中访问所有这些线程(负责与django交谈的线程).更具体地说,我希望能够从其中任何一个中访问每个线程的thread_data.这可能吗?如果是这样,我该怎么办?



1> fumanchu..:

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

但是,如果你专门讨论cherrypy.thread_data,那就是其他东西:threading.local.如果您使用的是最新版本的Python,那么用C语言编写的所有内容(您可能都是正确的)都没有Python的跨线程访问权限.如果你真的需要它并且真正知道你正在做什么,那么最好的技术通常是在将它们插入到thread_data结构的同时在全局容器中附加对这些东西的附加引用.我推荐带有weakrefs的dicts作为那些全局容器的键 - 有足够的Python ORM将它们用于连接池(例如,参见我自己的Geniusql),你应该能够相当容易地学习如何实现它们.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有