-->

是否扭曲,气旋或龙卷风做SMP多核开箱(Does twisted, cyclone or torna

2019-09-28 07:56发布

我想使用3中提到的非阻挡服务器中的任何一个的AWS Linux服务器上具有8个核心。 这是不以任何文件SMP是否在各自的HelloWorld封面,或者任何其他的例子下实现的清晰。

例如,该气旋的HelloWorld没有提及每个核心内核或多内核或线程。

import cyclone.web

class MainHandler(cyclone.web.RequestHandler):
    def get(self):
        self.write("Hello, world")


class Application(cyclone.web.Application):
    def __init__(self):
        cyclone.web.Application.__init__(self, [(r"/", MainHandler)],
                                         xheaders=False)

或者这样一个扭曲:

from twisted.web import server, resource
from twisted.internet import reactor
class HelloResource(resource.Resource):
    isLeaf = True
    numberRequests = 0

    def render_GET(self, request):
        self.numberRequests += 1
        request.setHeader("content-type", "text/plain")
        return "I am request #" + str(self.numberRequests) + "\n"

reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()

龙卷风...

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])
if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

事实上,它很难确定这些是否是非阻塞与否。

Answer 1:

龙卷风的HttpServer支持多处理模式,使用所述bind(port)start(num_procs)方法。
http://www.tornadoweb.org/en/stable/tcpserver.html#tornado.tcpserver.TCPServer.start



Answer 2:

CPython的过程中使用全局解释器锁,因此,如果只有一个Python进程正在运行时不能采取可用的硬件多线程的真正优势。



文章来源: Does twisted, cyclone or tornado do SMP multicore out of the box