框架选择的问题
来源:5-8 viewsets和router完成商品列表页

慕UI818949
2018-11-23
tornado是一个异步I/O框架,但是如果是计算密集型的任务,可以适用吗?比如现在有一个计算任务,计算需要1秒,但是同时有几千的http请求计算。这个时候Tornado有用吗?或者在Django/flask中使用多进程/多线程/协程来解决这个问题可以吗?
写回答
1回答
-
对于python来说,同一个cpu上只能同时存在一个线程执行,这个对于基于python的所有框架都是一样的, 对于计算型的任务,django/flask和tornado都一样,处理能力没有区别, tornado的优势在于io操作的类型上, 可以同时处理大量的io操作而不会阻塞。所以结论就是如果是计算任务,多进程是必须要的, 多线程对于计算型的任务来说,不论是哪个语言都无法提高计算型任务的速度,这个时候有只有利用多核cpu的特性或者利用分布式计算的特性, python和java的不同之处在于,同一个进程内的多个线程只会在一个cpu上交替执行,java由于虚拟机特性可以将多个线程分配到多个cpu上运行,不过这个在python中启动过个进程就行了, 所以对于高cpu的操作来说,cpu本身的数量和cpu本身的性能是关键, 或者采用分布式计算利用多个机器同时计算会更好
022018-11-26
Python前后端分离开发Vue+Django REST framework实战
Django REST framework课程视频,RESTFul API前后端分离开发
2895 学习 · 2481 问题
相似问题