一个在 web.py 中使用 threading 和 queue 的问题。

2015-02-07 14:50:18 +08:00
 eailfly
我在一个web.py项目里面项使用queue,但是不知道为什么,子线程里的queue一直都是空,代码如下
https://gist.github.com/eailfly/095fc4d362988d6acb17

我希望的是当我调用'http://127.0.0.1:8080/add'后子线程能够打印出q.queue,但是不知道为什么子线程中的q一直为空。
3782 次点击
所在节点    Python
3 条回复
noahzh
2015-02-07 16:23:03 +08:00
你需要的是一个global 的queue。
cute
2015-02-08 15:22:10 +08:00
`
from threading import Lock
lock = Lock()
with lock:
q.put('bai')
`
zxc111
2015-02-08 19:40:38 +08:00
app = web.application(urls, globals(), False) # 关闭autoreload
或者
web.config.debug = False # 关闭调试模式

不然每次request都会重新mapping,q不断的被创建, 导致play中的q和add中的q不一致

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/169037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX