首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX
›
问与答
python tornado 是多进程还是多线程模型?对于请求如何加锁
maga
·
2014 年 1 月 24 日
· 8342 次点击
这是一个创建于 4413 天前的主题,其中的信息可能已经有所发展或是发生改变。
tornado 是多进程还是多线程模型?
有个共享资源需要加锁,不知道我用threading.Lock()是否合适。
lock = threading.Lock()
class GiftLogHandler(tornado.web.RequestHandler):
def get(self):
lock.acquire()
do_somethin()
lock.release()
Tornado
lock
多线程
7 条回复
•
1970-01-01 08:00:00 +08:00
1
binux
2014 年 1 月 24 日
这还真不一定,取决于你用的是tornado哪部分功能了。
但是一般来说,以tornado的卖点来说,是单进程模型
2
oldcai
PRO
2014 年 1 月 24 日
tornado似乎是单进程且单线程,更像协程,加锁说不定会死锁。
3
maga
OP
2014 年 1 月 24 日
@
oldcai
如果是单进程且单线程,我有个共享资源并发需要保护怎么办?
4
Muninn
2014 年 1 月 24 日
据说这是python最大的伤痛。。。
5
9hills
2014 年 1 月 24 日 via Android
@
maga
如果是单进程单线程就没有共享资源问题了。。。
6
maga
OP
2014 年 1 月 25 日
@
9hills
对一个url, 多个请求并发访问,这算不算共资源了。
我考虑将数据放到外面了,比如数据库,redis,实现原子操作。
7
senghoo
2014 年 1 月 25 日 via iPad
@
maga
对于多个请求会顺序处理。在tornado中如果产生等待某个锁就会产生死锁
Tornado的编程模型不应该有锁存在。
好好看看设计是否合理吧。
关于
·
帮助文档
·
自助推广系统
·
博客
·
API
·
FAQ
·
Solana
·
672 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms ·
UTC 21:14
·
PVG 05:14
·
LAX 13:14
·
JFK 16:14
♥ Do have faith in what you're doing.
❯